import { PropDefaultsCb, ThemePropOptions } from "./useThemeProps"; import { InPropsOf, PropsOf, OverridableComponent, OverridableTypeMap, SuidComponentType, SuidElement } from "@suid/types"; import { JSXElement } from "solid-js"; declare function createComponentFactory>(): >(options: { name: NonNullable; selfPropNames: Exclude[]; propDefaults?: PropDefaultsCb; utilityClass?: (slot: string) => string; slotClasses?: (ownerState: O) => S; /** * @default true */ autoCallUseClasses?: boolean; }) => { name: NonNullable; selfPropNames: Exclude[]; component: (cb: (data: { allProps: InPropsOf; props: Pick, Exclude>; otherProps: Omit, Exclude>; classes: { [K in keyof S]: string; }; }) => JSXElement) => C extends OverridableTypeMap ? OverridableComponent : SuidElement; defineComponent: (cb: (props: PropsOf) => JSXElement, styled?: boolean) => C extends OverridableTypeMap ? OverridableComponent : SuidElement; useClasses: (ownerState: O) => Readonly<{ [K in keyof S]: string; }>; useThemeProps: (input: Omit, "name">) => InPropsOf; useProps: (props: PropsOf) => { allProps: InPropsOf; props: Pick, Extract[], readonly (keyof InPropsOf)[]>[number]>; otherProps: InPropsOf extends infer T ? { [P in keyof T as Exclude>]: InPropsOf[P]; } : never; }; splitInProps: (allProps: InPropsOf) => { allProps: InPropsOf; props: Pick, Extract[], readonly (keyof InPropsOf)[]>[number]>; otherProps: InPropsOf extends infer T ? { [P in keyof T as Exclude>]: InPropsOf[P]; } : never; }; }; export default createComponentFactory; //# sourceMappingURL=createComponentFactory.d.ts.map