import type { Theme } from "./createTheme"; import { StyledProps } from "./styledProps"; import { SxProps } from "./sxProps"; import { ElementType, OverridableComponent, OverridableInProps, PropsOf } from "@suid/types"; import { JSX } from "solid-js"; export interface ComponentProps { ownerState: O; theme: T; sx?: SxProps; as?: ElementType; } type Style, P, O> = ((props: ComponentProps & { props: P; }) => false | StyledProps) | false | StyledProps; export type StyledOptions = { name?: N; slot?: string; skipSx?: boolean; skipProps?: string[]; overridesResolver?: (props: Record, styles: Record) => (string | false | Record)[]; }; export type StyledComponent = (props: PropsOf & Partial>) => JSX.Element; export declare function redefine(component: StyledComponent, ..._types: T[]): StyledComponent; export declare const skipProps: (keyof ComponentProps)[]; type SuidComponentType = "system" | "base"; export declare function setSuidComponentType(cb: (...args: any[]) => any, type: SuidComponentType): void; declare function createStyled, CM extends Record = {}>(config?: { onUseTheme?: () => T; }): (Component: C, options?: StyledOptions) => ? OverridableInProps : unknown : C extends OverridableComponent ? OverridableInProps : unknown>(...styles: Style ? PropsOf : PropsOf : PropsOf, O>[]) => C extends OverridableComponent ? OverridableComponent<{ defaultComponent: M["defaultComponent"]; props: M["props"] & { ownerState?: O; }; }> : StyledComponent; export default createStyled; //# sourceMappingURL=createStyled.d.ts.map