export declare type Renderer = { render: (props?: TProps) => void; rerender: (props?: TProps) => void; unmount: () => void; act: Act; }; export declare type ServerRenderer = Renderer & { hydrate: () => void; }; export declare type RendererProps = { callback: (props: TProps) => TResult; setError: (error: Error) => void; setValue: (value: TResult) => void; }; export declare type CreateRenderer> = (props: RendererProps, options: TRendererOptions) => TRenderer; export declare type RenderResult = { readonly all: Array; readonly current: TValue; readonly error?: Error; }; export declare type ResultContainer = { result: RenderResult; }; export declare type WaitOptions = { interval?: number | false; timeout?: number | false; }; export declare type WaitForOptions = WaitOptions; export declare type WaitForValueToChangeOptions = WaitOptions; export declare type WaitForNextUpdateOptions = Pick; export declare type WaitFor = (callback: () => boolean | void, options?: WaitForOptions) => Promise; export declare type WaitForValueToChange = (selector: () => unknown, options?: WaitForValueToChangeOptions) => Promise; export declare type WaitForNextUpdate = (options?: WaitForNextUpdateOptions) => Promise; export declare type AsyncUtils = { waitFor: WaitFor; waitForValueToChange: WaitForValueToChange; waitForNextUpdate: WaitForNextUpdate; }; export declare type RenderHookResult = Renderer> = ResultContainer & Omit, 'render' | 'act'> & Omit> & AsyncUtils; export declare type ServerRenderHookResult = ServerRenderer> = RenderHookResult; export declare type RenderHookOptions = { initialProps?: TProps; }; export declare type Act = { (callback: () => Promise): Promise; (callback: () => void | undefined): void; }; export declare type CleanupCallback = () => Promise | void;