import type { GetOptionalCustomProperties, VariantOptions } from './makeCustomProperties.js'; /** Type that represents the values object you can pass into `makeCustomProperties` */ export type CustomPropValuesObject = { [key: string | number]: string | number | CustomPropValuesObject; }; /** Type that represents the custom properties object you get from `makeCustomProperties` */ export type CustomPropsObject = { [key: string | number]: string | CustomPropsObject; }; /** Generic that extracts `CustomPropsObject` from `CustomPropValuesObject` */ export type GetCustomProperties = { [K in keyof TCustomProps]: TCustomProps[K] extends string | number ? `var(--${string})` : TCustomProps[K] extends CustomPropValuesObject ? GetCustomProperties : never; }; type Variant = { props: T; options?: VariantOptions; }; export type VariantMap = { default: Variant; } & { [K in TVariantName]: Variant>; }; export interface BuildOptions { /** * The selector of the DOM node that will receive variant override CSS classes. * * If this value is not set, variant override CSS classes will be added to `` element. */ selector?: string; /** * The prefix that will be added to custom property names and the override CSS classes. * * Defaults to `jsxstyle`. */ namespace?: string; /** * Whether or not to crunch custom property names down to something compact. * If you’re referencing these custom properties outside of the official API (i.e. in plain CSS), you should not enable this option. * * Defaults to `false`. */ mangle?: boolean; } export interface CustomPropertyVariant { className: string; mediaQuery?: `@media ${string}`; } export declare const generateCustomPropertiesFromVariants: (variantMap: VariantMap, buildOptions?: BuildOptions) => { customProperties: GetCustomProperties; variantNames: TVariantName[]; variants: Record; styles: string[]; }; export {}; //# sourceMappingURL=generateCustomPropertiesFromVariants.d.ts.map