import type { SystemStyleObject } from "./css.types";
import type { JsxFactoryOptions } from "./factory.types";
import type { ConfigRecipeSlots } from "./generated/recipes.gen";
import { type SlotRecipeKey, type UseSlotRecipeOptions } from "./use-slot-recipe";
interface WrapElementProps
{
wrapElement?(element: React.ReactElement, props: P): React.ReactElement;
}
export interface WithRootProviderOptions
extends WrapElementProps
{
defaultProps?: Partial
;
}
export interface WithProviderOptions
extends JsxFactoryOptions
, WrapElementProps
{
}
export interface WithContextOptions
extends JsxFactoryOptions
{
}
export declare const createSlotRecipeContext: (options: UseSlotRecipeOptions) => {
StylesProvider: import("react").Provider>;
ClassNamesProvider: import("react").Provider>;
PropsProvider: import("react").Provider>;
usePropsContext: () => Record;
useRecipeResult: (props: any) => {
styles: Record;
classNames: Record;
props: {
[x: string]: any;
[x: number]: any;
[x: symbol]: any;
};
};
withProvider: (Component: React.ElementType, slot: R extends keyof ConfigRecipeSlots ? ConfigRecipeSlots[R] : string, options?: WithProviderOptions) => React.ForwardRefExoticComponent & React.RefAttributes>;
withContext: (Component: React.ElementType, slot?: R extends keyof ConfigRecipeSlots ? ConfigRecipeSlots[R] : string, options?: WithContextOptions) => React.ForwardRefExoticComponent & React.RefAttributes>;
withRootProvider: (Component: React.ElementType, options?: WithRootProviderOptions) => React.FC>;
useStyles: () => Record;
useClassNames: () => Record;
};
export {};