import type { Properties } from "./css.js"; export interface CSSProperties extends Properties { } declare type PropertyCssValue = T extends keyof CSSProperties ? CSSProperties[T] : never; export declare type ConfigStaticProperties = { [k in keyof CSSProperties]?: ReadonlyArray | Record; }; export declare type ConfigDynamicProperties = { [k in keyof CSSProperties]?: Record | true; }; export declare type ConfigConditions = { [conditionName: string]: { '@media'?: string; '@supports'?: string; '@container'?: string; selector?: string; }; }; export declare type ConfigShorthands = { [shorthandName: string]: Array; }; export declare type ConditionalPropertyValue = { default: string; conditions: { [conditionName: string]: string; }; }; declare type NonConditionalPropertyValue = { default: string; }; export declare type DynamicProperty = { dynamic: NonConditionalPropertyValue; vars: NonConditionalPropertyValue; dynamicScale: { [token: string]: string; } | true; name: string; }; export declare type DynamicConditionalProperty = { dynamic: ConditionalPropertyValue; vars: ConditionalPropertyValue; dynamicScale: { [token: string]: string; } | true; name: string; }; export declare type StaticPropertyArray = { values: { [value: string]: NonConditionalPropertyValue; }; staticScale: string[]; name: string; }; export declare type StaticConditionalPropertyArray = { values: { [value: string]: ConditionalPropertyValue; }; staticScale: string[]; name: string; }; export declare type StaticProperty = { values: { [value: string]: NonConditionalPropertyValue; }; staticScale: { [token: string]: string; }; name: string; }; export declare type StaticConditionalProperty = { values: { [value: string]: ConditionalPropertyValue; }; staticScale: { [token: string]: string; }; name: string; }; export declare type StaticDynamicPropertyArray = { dynamic: NonConditionalPropertyValue; values: { [value: string]: NonConditionalPropertyValue; }; name: string; staticScale: string[]; dynamicScale: true; vars: NonConditionalPropertyValue; }; export declare type StaticDynamicConditionalPropertyArray = { dynamic: ConditionalPropertyValue; values: { [value: string]: ConditionalPropertyValue; }; name: string; staticScale: string[]; dynamicScale: true; vars: ConditionalPropertyValue; }; export declare type StaticDynamicProperty = { dynamic: NonConditionalPropertyValue; values: { [value: string]: NonConditionalPropertyValue; }; name: string; vars: NonConditionalPropertyValue; staticScale: { [token: string]: string; }; dynamicScale: true; }; export declare type StaticDynamicConditionalProperty = { dynamic: ConditionalPropertyValue; values: { [value: string]: ConditionalPropertyValue; }; name: string; vars: ConditionalPropertyValue; staticScale: { [token: string]: string; }; dynamicScale: true; }; export declare type ShorthandProperty = { mappings: string[]; }; export declare type SprinkleProperties = { [k: string]: DynamicProperty | StaticProperty | StaticPropertyArray | StaticDynamicPropertyArray | StaticDynamicProperty | DynamicConditionalProperty | StaticConditionalProperty | StaticConditionalPropertyArray | StaticDynamicConditionalPropertyArray | StaticDynamicConditionalProperty | ShorthandProperty; }; /** * All of the possible permutations of a Sprinkle Property, combined * together and made conditional */ export declare type CreateStylesOutput = { dynamic?: { default: string; conditions?: { [condition: string]: string; }; }; values?: { [value: string]: { default: string; conditions?: { [condition: string]: string; }; }; }; name: string; vars?: { default: string; conditions?: { [condition: string]: string; }; }; staticScale?: ReadonlyArray | Record; dynamicScale?: true | Record; }; export declare type DefinePropertiesReturn = { config: SprinkleProperties; }; declare type ValueOrConditionObject = T | null | Partial>; declare type ValueOrConditionObjectStatic = T | null | { [Condition in keyof Values[keyof Values]['conditions']]?: T | null; }; export declare type PrefixValue = T extends `-${infer Root}` ? `-$${Root}` : `$${(string | number) & T}`; export declare type ChildSprinkle = Sprinkle extends StaticDynamicConditionalProperty ? ValueOrConditionObject | PrefixValue, Sprinkle['vars']> : Sprinkle extends StaticDynamicConditionalPropertyArray ? ValueOrConditionObject, Sprinkle['vars']> : Sprinkle extends DynamicConditionalProperty ? Sprinkle['dynamicScale'] extends boolean ? ValueOrConditionObject, Sprinkle['vars']> : ValueOrConditionObject | PrefixValue, Sprinkle['vars']> : Sprinkle extends StaticDynamicConditionalPropertyArray ? ValueOrConditionObject : Sprinkle extends StaticDynamicConditionalProperty ? ValueOrConditionObjectStatic, Sprinkle['values']> : Sprinkle extends StaticConditionalProperty ? ValueOrConditionObjectStatic, Sprinkle['values']> : Sprinkle extends StaticConditionalPropertyArray ? ValueOrConditionObjectStatic : Sprinkle extends StaticDynamicProperty ? PrefixValue | PropertyCssValue : Sprinkle extends StaticDynamicPropertyArray ? PropertyCssValue : Sprinkle extends DynamicProperty ? PropertyCssValue | (Sprinkle['dynamicScale'] extends boolean ? never : PrefixValue) : Sprinkle extends StaticProperty ? PrefixValue : Sprinkle extends StaticPropertyArray ? Sprinkle['staticScale'][number] : never; export declare type ChildSprinkles = { [Prop in keyof Sprinkles]?: Sprinkles[Prop] extends ShorthandProperty ? ChildSprinkle : ChildSprinkle; }; export declare type SprinklesProps> = Args extends [ infer L, ...infer R ] ? (L extends DefinePropertiesReturn ? ChildSprinkles : never) & SprinklesProps : {}; export interface CommonOptions { '@layer'?: string; } export declare type RuntimeFnReturn = { style: Record; className: string; otherProps: Record; }; export {};