import { Properties } from 'csstype'; type CSSProperties = Properties & Record; type OmitUndefined = T extends undefined ? never : T; type VariantSchema = Record>; type InferVariants = { [Variant in keyof T]?: Extract | null | undefined | AdditionalType; }; /** * Represents the configuration for variants in a component. * * @template T - The type of the variant schema. */ type Config = { /** * Base CSS properties that apply to all variants. */ base?: CSSProperties; /** * Variants schema that defines the available variants and their styles. */ variants?: T; /** * Default values for each variant. */ defaultVariants?: InferVariants; /** * Compound variants that define additional styles based on combinations of variant values. */ compoundVariants?: Array & { styles?: CSSProperties; }>; }; type Props = InferVariants & { styles?: CSSProperties; }; type StyleVariantProps any> = Omit[0]>, "styles">; /** * Returns a function that generates resolved styles based on variant props. * * @param config - The configuration object for the variants schema. * @returns A function that accepts variant props and returns resolved styles. */ declare function sva(config: Config): (variantProps?: Props) => Record; export { type StyleVariantProps, sva };