import type { RawCSS } from '@pinceau/style' import type { PinceauMediaQueries } from '@pinceau/outputs/theme' export interface VariantOptions { type?: string required?: boolean default?: PropType | { [key in PinceauMediaQueries]?: PropType } mediaPrefix?: boolean } export type Variant< LocalTokens extends string | undefined = undefined, TemplateSource extends {} = {}, > = { options?: VariantOptions } & { [key: string]: RawCSS } export interface Variants< LocalTokens extends string | undefined = undefined, TemplateSource extends {} = {}, > { [key: string]: Variant } export interface VariantsProps { [key: string]: string | boolean | { [key: string]: string | boolean } } /** Local testing purposes; this ain't exposed nor used anywhere */ // function variant(declaration: Variant) { return declaration as Readonly } // function variants(declaration: Variants) { return declaration as Readonly }