import type { CSSTypes } from './csstypes'; type CSSVariableKey = `--${string}`; type CSSVariableValue = `var(${CSSVariableKey})`; type ThemeValue = { default: string; theme: string; }; type CSSVariableProperty = { [key: CSSVariableKey]: string | number | ThemeValue; }; type CommonProperties = { [K in keyof CSSTypes]: CSSTypes[K] | CSSVariableValue | ThemeValue; }; type ArrayString = `[${string}`; type ArraySelector = { [key in ArrayString]: CommonProperties | CSSVariableProperty; }; type ColonString = `:${string}`; type ColonSelector = { [key in ColonString]: CommonProperties | CSSVariableProperty; }; type AtRule = | `@media ${string}` | `@container ${string}` | `@supports ${string}` | `@layer ${string}` | `@scope ${string}`; type AtRuleSelector = { [K in AtRule]: | CommonProperties | ColonSelector | ArraySelector | CSSVariableProperty; }; type CSSProperties = | CommonProperties | ColonSelector | ArraySelector | AtRuleSelector | CSSVariableProperty; type CreateStyleValue = CSSProperties | ((...args: any[]) => CSSProperties); declare const ClassNameTag: unique symbol; type AtomicClassNameFor

= string & { readonly _ident: typeof ClassNameTag; readonly _key: P; readonly _value: V; }; type AtString = `@${string}`; type MapNamespace = Readonly<{ [key in keyof T]: T[key] extends Record ? key extends ColonString | ArrayString | AtString ? MapNamespace : AtomicClassNameFor : key extends string ? AtomicClassNameFor : never; }>; type CreateReturnType = Readonly<{ [K in keyof T]: T[K] extends (...args: infer A) => infer R ? (...args: A) => MapNamespace : MapNamespace; }>; type Conditional = false | CSSProperties | null | undefined; type StyleName = Conditional | StyleName[]; type CreateStatic = Record; type CreateTheme = { [key: string]: ThemeValue; }; type DotString = `.${string}`; type CreateThemeSelector = DotString | ArrayString | AtRule; type CreateThemeReturnType = { readonly [K in keyof T]: Readonly; }; type KeyframesInSelector = 'from' | 'to' | `${number}%`; type Keyframes = { [K in KeyframesInSelector]?: CSSProperties; }; type ViewTransition = { group?: CSSProperties; imagePair?: CSSProperties; new?: CSSProperties; old?: CSSProperties; }; type Marker = Record; type StripColon = T extends `:${infer R}` ? StripColon : T; type Extended< I extends string, P extends string, > = `@container style(--${I}-${StripColon

}: 1)`; export type { AtomicClassNameFor, StyleName, CSSProperties, CreateStyleValue, CreateReturnType, CreateTheme, CreateThemeSelector, CreateThemeReturnType, CreateStatic, Keyframes, ViewTransition, Marker, Extended, };