import { State, Manager, Controller } from '@data-client/react';
import React from 'react';
import { RenderHookResult, RenderHookOptions } from './renderHook.cjs';
import { Interceptor, Fixture } from '../fixtureTypes.js';
/** @see https://dataclient.io/docs/api/makeRenderDataHook */
export default function makeRenderDataHook(Provider: React.ComponentType<DataProviderProps>): RenderDataHook;
export interface DataProviderProps {
    children: React.ReactNode;
    managers: Manager[];
    initialState: State<unknown>;
    Controller: typeof Controller<any>;
    devButton: any;
}
export type RenderDataHookResult<R, P> = RenderHookResult<R, P> & {
    controller: Controller;
    cleanup: () => void;
    allSettled: () => Promise<PromiseSettledResult<unknown>[]> | undefined;
};
export type RenderDataHook = (<P, R>(callback: (props: P) => R, options?: {
    initialProps?: P;
    initialFixtures?: readonly Fixture[];
    readonly resolverFixtures?: readonly (Fixture | Interceptor)[];
    wrapper?: React.ComponentType<React.PropsWithChildren<P>>;
} & Pick<RenderHookOptions<P>, Exclude<keyof RenderHookOptions<P>, 'initialProps' | 'wrapper'>>) => RenderDataHookResult<R, P>) & {
    /** @deprecated use per-render cleanup returned from renderDataClient() instead */
    cleanup: () => void;
    /** @deprecated use per-render allSettled returned from renderDataClient() instead */
    allSettled: () => Promise<PromiseSettledResult<unknown>[]> | undefined;
};
//# sourceMappingURL=index.d.ts.map
