import type * as CLSX from 'clsx'; export type ClassPropKey = 'class' | 'className'; export type ClassValue = CLSX.ClassValue; export type ClassProp = { class: ClassValue; className?: never; } | { class?: never; className: ClassValue; } | { class?: never; className?: never; }; export type OmitUndefined = T extends undefined ? never : T; export type StringToBoolean = T extends 'true' | 'false' ? boolean : T; type ConfigSchema = Record>; type ConfigVariants = { [Variant in keyof T]?: StringToBoolean | null | undefined; }; type ConfigVariantsMulti = { [Variant in keyof T]?: StringToBoolean | StringToBoolean[] | undefined; }; type Config = T extends ConfigSchema ? { variants?: T; defaultVariants?: ConfigVariants; compoundVariants?: (T extends ConfigSchema ? (ConfigVariants | ConfigVariantsMulti) & ClassProp : ClassProp)[]; } : never; type Props = T extends ConfigSchema ? ConfigVariants & ClassProp : ClassProp; export declare function createVariants(base?: ClassValue, config?: Config | undefined): (props?: Props | undefined) => string; export {};