import { PropertiesFallback, PropertiesHyphenFallback } from 'csstype'; interface CSSCustomProperties { '--tw-rotate'?: string; '--tw-gradient-stops'?: string; } interface CSSProperties extends PropertiesFallback, PropertiesHyphenFallback, CSSCustomProperties { } declare type Falsy = '' | 0 | -0 | false | null | undefined | void; declare type MaybeArray = T | readonly T[]; interface TWCallable { (strings: TemplateStringsArray, ...interpolations: Token[]): string; (...tokens: Token[]): string; } interface Context { /** Allow composition */ readonly tw: TWCallable; /** Access to theme values */ readonly theme: ThemeResolver; /** Create unique identifier (group, custom properties) */ readonly tag: (key: string) => string; readonly css: (rule: Rule[] | string) => CSSRules; } declare type MaybeThunk = T | ((context: Context) => T); interface Preflight { (preflight: CSSRules, context: Context): MaybeThunk; } interface ThemeConfiguration extends Partial { extend?: Partial; } interface Sheet { readonly target: T; insert: (rule: string, index: number) => void; init?: SheetInit; } declare type SheetInitCallback = (value?: T | undefined) => T; interface SheetInit { /** * Register a function that should be called to use a snapshot state or create a new state. */ (callback: SheetInitCallback): T; } declare type Prefixer = (property: string, value: string, important?: boolean) => string; declare type Hasher = (value: string) => string; declare type DarkMode = 'media' | 'class' | false; interface Configuration { /** * Determines the dark mode strategy (default: `"media"`). */ darkMode?: DarkMode; theme?: ThemeConfiguration; plugins?: Plugins; /** * ```js * { * ':new-variant': '& .selector', * } * ``` */ variants?: Record; /** * Sets a cryptographic nonce (number used once) on the enclosing `