import { P as PartialRecord, C as CssProperties, O as ObjectKeyArrayPicker, a as ObjectKeyPicker } from './types-BXKyjXhG.js'; import 'csstype'; type SlotStyleRecord = PartialRecord; type SlotStyleVariantRecord = Record>>; type SlotStyleVariantExtendProps = { styles: SlotStyleRecord; }; interface SlotStyleVariantDefinition | undefined> { slots: S[]; base?: SlotStyleRecord; variants?: T; compoundVariants?: (ObjectKeyArrayPicker & SlotStyleVariantExtendProps)[]; defaultVariants?: ObjectKeyPicker; } type SlotStyleVariantFnProps | undefined> = T extends undefined ? Partial> : ObjectKeyPicker & Partial>; type SlotStyleVariantFn | undefined> = (props?: SlotStyleVariantFnProps) => Record; type SlotStyleVariantCreatorFn = | undefined>(config: SlotStyleVariantDefinition) => SlotStyleVariantFn; /** * Creates a slot-based style variant function that composes CSS properties based on variants and compound variants. * * @param config - Configuration object for creating style variants * @returns A function that accepts variant props and returns composed styles for each slot * * @example * ```ts * const buttonStyles = ssv({ * slots: ['root', 'icon'], * base: { * root: { padding: '8px' }, * icon: { size: '16px' } * }, * variants: { * size: { * small: { * root: { padding: '4px' }, * icon: { size: '12px' } * }, * large: { * root: { padding: '12px' }, * icon: { size: '20px' } * } * } * } * }); * * // Usage * const styles = buttonStyles({ size: 'small' }); * // => { root: { padding: '4px' }, icon: { size: '12px' } } * ``` */ declare const ssv: SlotStyleVariantCreatorFn; export { type SlotStyleRecord, type SlotStyleVariantCreatorFn, type SlotStyleVariantDefinition, type SlotStyleVariantExtendProps, type SlotStyleVariantFn, type SlotStyleVariantFnProps, type SlotStyleVariantRecord, ssv as default, ssv };