import type { BuildOptions, CustomPropValuesObject, CustomPropertyVariant, GetCustomProperties } from './generateCustomPropertiesFromVariants.js'; import type { StyleCache } from './getStyleCache.js'; import type { CSSProperties } from './types.js'; export type GetOptionalCustomProperties = { [K in keyof TCustomProps]?: TCustomProps[K] extends string | number ? string | number : TCustomProps[K] extends CustomPropValuesObject ? GetOptionalCustomProperties : never; }; export interface MakeCustomPropertiesFunction { /** Add a variant to this variant group */ addVariant: ( /** The name for your new variant. You’ll reference the variant by name when manually activating it. */ variantName: TName, /** The props that will change when this variant is active */ props: GetOptionalCustomProperties, /** Options */ options?: VariantOptions) => MakeCustomPropertiesFunction; build: (buildOptions?: BuildOptions) => BuiltCustomProperties; } export type BuiltCustomProperties = GetCustomProperties & { /** All variant names */ variantNames: TVariantName[]; /** * Variant metadata keyed by variant name. * There’s a curried `set` method in there too. */ variants: Record; /** All variant styles, one array item per CSS class */ styles: string[]; }; export interface VariantOptions { /** Optional color scheme, to be applied when this variant is applied. */ colorScheme?: CSSProperties['colorScheme']; /** Optional media query that will activate this variant. */ mediaQuery?: string; } export declare const getCustomPropertiesFunction: (cache: StyleCache) => (props: TCustomProps, options?: VariantOptions) => MakeCustomPropertiesFunction; //# sourceMappingURL=makeCustomProperties.d.ts.map