import { type ReactNode } from 'react';
import type { ActionHandler, AppearanceConfig, DefaultRenderer, RenderData, RenderProps } from './types';
interface RenderContextValue {
    renderProps: RenderProps;
    appearance: AppearanceConfig;
    actionHandlers: ActionHandler;
    invoke: <T extends ReactNode>(propName: keyof RenderProps, data: RenderData, defaultRenderer: DefaultRenderer<T>) => T;
}
export interface RenderProviderProps {
    children: ReactNode;
    renderProps?: RenderProps;
    appearance?: AppearanceConfig;
    actionHandlers?: ActionHandler;
}
/**
 * Provider for render props and appearance configuration
 */
export declare function RenderProvider({ children, renderProps, appearance, actionHandlers, }: RenderProviderProps): import("react/jsx-runtime").JSX.Element;
/**
 * Hook to access render context
 */
export declare function useRenderContext(): RenderContextValue;
/**
 * Hook to get render props
 */
export declare function useRenderProps(): RenderProps;
/**
 * Hook to get appearance config
 */
export declare function useAppearance(): AppearanceConfig;
/**
 * Hook to get action handlers
 */
export declare function useActionHandlers(): ActionHandler;
/**
 * Hook to invoke a render prop
 */
export declare function useRender<T extends ReactNode>(propName: keyof RenderProps, data: RenderData, defaultRenderer: DefaultRenderer<T>): T;
export {};
