type Param = string | string[] | Record | [string, { [key in keyof T]?: T[key]; }] | { [key in keyof T]?: T[key] extends string | undefined ? Record : T[key] extends boolean | undefined ? string : (Record | string); } | ((valueByProp: T) => any); type ReturnType = { default?: Partial; } & ((valueByProp?: T) => string); /** * 1. 'inline-flex rounded' * 2. ['inline-flex', 'rounded'] * 3. { 'bg:red': true, 'fg:30': false } * 4. ['uppercase', { intent: 'primary', size: 'md' }] * 5. { intent: { primary: 'bg:blue-50 fg:white', secondary: 'bg:white fg:gray-80' }, size: { sm: 'font:20 py:1 px:2', md: 'font:16 py:2 px:4' }, disabled: 'opacity:.5' } * 6. ({ $intent, $size }) => $intent && $size && 'font:italic' */ declare function cv>(...params: Param[]): ReturnType; declare function cv>(firstParam: TemplateStringsArray, ...params: Param[]): ReturnType; export default cv;