import type { JsonSerializable } from '../shared/types/shared.ts';
import type { RendererMocksContext } from '../testing/internal/mocks/index.ts';
import type { RendererMocks } from '../testing/types.ts';
type AnyFunction = (...args: any[]) => any;
/**
 * Creates a mock-aware hook function that can be used to mock the original hook function.
 * The mock-aware hook function will return the mocked hook function if a mock is found, otherwise it will return the original hook function.
 *
 * @param hookName The name of the hook to mock that corresponds to the key in the Mocks interface
 * @param originalHookFunction The original hook function to call if no mock is found
 * @returns The mocked hook function or the original hook function if no mock is found
 */
export declare const createMockAwareHook: <THookName extends keyof RendererMocks, THookFunction extends AnyFunction>(hookName: THookName, originalHookFunction: THookFunction) => THookFunction;
/**
 * A hook that provides access to the Mocks context.
 * Returns the mocks context value if inside a MocksContextProvider, otherwise returns null.
 *
 * @returns The mocks context value or null if not in a test environment.
 */
export declare function useMocksContext(): RendererMocksContext | null;
/**
 * A React component that provides the Mocks context that can be used to provide mocks to the mock-aware hook functions.
 *
 * @param children The children to render.
 * @returns The children wrapped in the Mocks context provider.
 */
export declare const MocksContextProvider: import("react").Provider<RendererMocksContext | null>;
/**
 * Stabilizes a value's reference identity across re-renders using deep
 * comparison via JSON.stringify.
 */
export declare function useStableValue<T extends JsonSerializable>(value: T): T;
export {};
