// Type definitions for cavy 2.2 // Project: https://github.com/pixielabs/cavy // Definitions by: Tyler Hoffman // Abigail McPhillips // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 3.0 import * as React from 'react'; export {}; type RefCallback = (element: React.ReactNode | null) => void; type TestHookGeneratorWithRefCallback = (label: string, ref?: RefCallback) => RefCallback; type TestHookGeneratorWithRefObject = (label: string, ref?: React.RefObject) => React.RefObject; export type TestHookGenerator = TestHookGeneratorWithRefCallback & TestHookGeneratorWithRefObject; export type WithTestHook = T & { generateTestHook: TestHookGenerator }; export function hook(component: React.ComponentClass>): React.ComponentClass; export function useCavy(): TestHookGenerator; export interface TesterProps { specs: Array<(spec: TestScope) => void>; waitTime: number; sendReport?: boolean; } export class Tester extends React.Component { reRender(): void; clearAsync(): Promise; } export class TestScope { component: Tester; findComponent(identifier: string): Promise; describe(label: string, fn: () => void): void; it(label: string, fn: () => void): void; beforeEach(fn: () => void): void; press(identifier: string): Promise; fillIn(identifier: string, str: string): Promise; pause(time: number): Promise; exists(identifier: string): Promise; notExists(identifier: string): Promise; }