UNPKG

2.33 kBTypeScriptView Raw
1export declare type Renderer<TProps> = {
2 render: (props?: TProps) => void;
3 rerender: (props?: TProps) => void;
4 unmount: () => void;
5 act: Act;
6};
7export declare type ServerRenderer<TProps> = Renderer<TProps> & {
8 hydrate: () => void;
9};
10export declare type RendererProps<TProps, TResult> = {
11 callback: (props: TProps) => TResult;
12 setError: (error: Error) => void;
13 setValue: (value: TResult) => void;
14};
15export declare type CreateRenderer<TProps, TResult, TRendererOptions extends object, TRenderer extends Renderer<TProps>> = (props: RendererProps<TProps, TResult>, options: TRendererOptions) => TRenderer;
16export declare type RenderResult<TValue> = {
17 readonly all: Array<TValue | Error>;
18 readonly current: TValue;
19 readonly error?: Error;
20};
21export declare type ResultContainer<TValue> = {
22 result: RenderResult<TValue>;
23};
24export declare type WaitOptions = {
25 interval?: number | false;
26 timeout?: number | false;
27};
28export declare type WaitForOptions = WaitOptions;
29export declare type WaitForValueToChangeOptions = WaitOptions;
30export declare type WaitForNextUpdateOptions = Pick<WaitOptions, 'timeout'>;
31export declare type WaitFor = (callback: () => boolean | void, options?: WaitForOptions) => Promise<void>;
32export declare type WaitForValueToChange = (selector: () => unknown, options?: WaitForValueToChangeOptions) => Promise<void>;
33export declare type WaitForNextUpdate = (options?: WaitForNextUpdateOptions) => Promise<void>;
34export declare type AsyncUtils = {
35 waitFor: WaitFor;
36 waitForValueToChange: WaitForValueToChange;
37 waitForNextUpdate: WaitForNextUpdate;
38};
39export declare type RenderHookResult<TProps, TValue, TRenderer extends Renderer<TProps> = Renderer<TProps>> = ResultContainer<TValue> & Omit<Renderer<TProps>, 'render' | 'act'> & Omit<TRenderer, keyof Renderer<TProps>> & AsyncUtils;
40export declare type ServerRenderHookResult<TProps, TValue, TRenderer extends ServerRenderer<TProps> = ServerRenderer<TProps>> = RenderHookResult<TProps, TValue, TRenderer>;
41export declare type RenderHookOptions<TProps> = {
42 initialProps?: TProps;
43};
44export declare type Act = {
45 (callback: () => Promise<void | undefined>): Promise<undefined>;
46 (callback: () => void | undefined): void;
47};
48export declare type CleanupCallback = () => Promise<void> | void;