import * as React from 'react'; import { AccessibilityState, AccessibilityStates, AccessibilityRole } from 'react-native'; import { ReactTestInstance, ReactTestRendererJSON } from 'react-test-renderer'; export interface GetByAPI { getByName: (name: React.ReactType | string) => ReactTestInstance; getByType:

(type: React.ComponentType

) => ReactTestInstance; getByText: (text: string | RegExp) => ReactTestInstance; getByPlaceholder: (placeholder: string | RegExp) => ReactTestInstance; getByDisplayValue: (value: string | RegExp) => ReactTestInstance; getByProps: (props: Record) => ReactTestInstance; getByTestId: (testID: string) => ReactTestInstance; getAllByTestId: (testID: string) => Array; getAllByName: (name: React.ReactType | string) => Array; getAllByType:

(type: React.ComponentType

) => Array; getAllByText: (text: string | RegExp) => Array; getAllByPlaceholder: ( placeholder: string | RegExp ) => Array; getAllByDisplayValue: (value: string | RegExp) => Array; getAllByProps: (props: Record) => Array; // Unsafe aliases UNSAFE_getByType:

(type: React.ComponentType

) => ReactTestInstance, UNSAFE_getAllByType:

(type: React.ComponentType

) => Array, UNSAFE_getByProps: (props: Record) => ReactTestInstance, UNSAFE_getAllByProps: (props: Record) => Array, } export interface QueryByAPI { queryByName: (name: React.ReactType | string) => ReactTestInstance | null; queryByType:

(type: React.ComponentType

) => ReactTestInstance | null; queryByText: (name: string | RegExp) => ReactTestInstance | null; queryByPlaceholder: ( placeholder: string | RegExp ) => ReactTestInstance | null; queryByDisplayValue: (value: string | RegExp) => ReactTestInstance | null; queryByProps: (props: Record) => ReactTestInstance | null; queryByTestId: (testID: string) => ReactTestInstance | null; queryAllByTestId: (testID: string) => Array | null; queryAllByName: ( name: React.ReactType | string ) => Array | []; queryAllByType:

( type: React.ComponentType

) => Array | []; queryAllByText: (text: string | RegExp) => Array | []; queryAllByPlaceholder: ( placeholder: string | RegExp ) => Array | []; queryAllByDisplayValue: ( value: string | RegExp ) => Array | []; queryAllByProps: ( props: Record ) => Array | []; // Unsafe aliases UNSAFE_queryByType:

(type: React.ComponentType

) => ReactTestInstance | null, UNSAFE_queryAllByType:

(type: React.ComponentType

) => Array | [], UNSAFE_queryByProps: (props: Record) => ReactTestInstance | null, UNSAFE_queryAllByProps: (props: Record) => Array | [], } type GetReturn = ReactTestInstance; type GetAllReturn = Array; type QueryReturn = ReactTestInstance | null; type QueryAllReturn = Array | []; // Not yet available in DefinitelyTyped export type A11yValue = { min?: number, max?: number, now?: number, text?: string, }; type A11yAPI = { // Label getByA11yLabel: (matcher: string | RegExp) => GetReturn, getAllByA11yLabel: (matcher: string | RegExp) => GetAllReturn, queryByA11yLabel: (matcher: string | RegExp) => QueryReturn, queryAllByA11yLabel: (matcher: string | RegExp) => QueryAllReturn, // Hint getByA11yHint: (matcher: string | RegExp) => GetReturn, getAllByA11yHint: (matcher: string | RegExp) => GetAllReturn, queryByA11yHint: (matcher: string | RegExp) => QueryReturn, queryAllByA11yHint: (matcher: string | RegExp) => QueryAllReturn, // Role getByA11yRole: (matcher: AccessibilityRole | RegExp) => GetReturn, getAllByA11yRole: (matcher: AccessibilityRole | RegExp) => GetAllReturn, queryByA11yRole: (matcher: AccessibilityRole | RegExp) => QueryReturn, queryAllByA11yRole: (matcher: AccessibilityRole | RegExp) => QueryAllReturn, // States getByA11yStates: (matcher: AccessibilityStates | Array) => GetReturn, getAllByA11yStates: (matcher: AccessibilityStates | Array) => GetAllReturn, queryByA11yStates: (matcher: AccessibilityStates | Array) => QueryReturn, queryAllByA11yStates: (matcher: AccessibilityStates | Array) => QueryAllReturn, // State getByA11yState: (matcher: AccessibilityState) => GetReturn, getAllByA11yState: (matcher: AccessibilityState) => GetAllReturn, queryByA11yState: (matcher: AccessibilityState) => QueryReturn, queryAllByA11yState: (matcher: AccessibilityState) => QueryAllReturn, // Value getByA11yValue: (matcher: A11yValue) => GetReturn, getAllByA11yValue: (matcher: A11yValue) => GetAllReturn, queryByA11yValue: (matcher: A11yValue) => QueryReturn, queryAllByA11yValue: (matcher: A11yValue) => QueryAllReturn, }; export interface Thenable { then: (resolve: () => any, reject?: () => any) => any; } export interface RenderOptions { wrapper?: React.ComponentType; createNodeMock?: (element: React.ReactElement) => any; } export interface RenderAPI extends GetByAPI, QueryByAPI, A11yAPI { update(nextElement: React.ReactElement): void; rerender(nextElement: React.ReactElement): void; unmount(nextElement?: React.ReactElement): void; toJSON(): ReactTestRendererJSON | null; debug(message?: string): void; } export type FireEventFunction = ( element: ReactTestInstance, eventName: string, ...data: Array ) => any; export type FireEventAPI = FireEventFunction & { press: (element: ReactTestInstance) => any; changeText: (element: ReactTestInstance, ...data: Array) => any; scroll: (element: ReactTestInstance, ...data: Array) => any; }; export type WaitForElementFunction = ( expectation: () => T, timeout?: number, interval?: number ) => Promise; export type DebugFunction = ( instance: ReactTestInstance | React.ReactElement, message?: string ) => void; export type DebugAPI = DebugFunction & { shallow: DebugFunction; deep: ( instance: React.ReactElement | ReactTestRendererJSON | null, message?: string ) => void; }; export declare const render: ( component: React.ReactElement, options?: RenderOptions ) => RenderAPI; export declare const shallow:

( instance: ReactTestInstance | React.ReactElement

) => { output: React.ReactElement

}; export declare const flushMicrotasksQueue: () => Promise; export declare const cleanup: () => void; export declare const debug: DebugAPI; export declare const fireEvent: FireEventAPI; export declare const waitForElement: WaitForElementFunction; export declare const act: (callback: () => void) => Thenable;