export declare type StyleTransform = (...args: T[]) => R; export declare type StyleTransformString = (s: string) => T; export declare type StyleMode = 'args' | 'full' | 'both' | 'null'; export declare type StyleTemplate = (strings: TemplateStringsArray, ...keys: K[]) => T; export declare type StyleFlatten = (strings: TemplateStringsArray, ...keys: any[]) => any; export declare class StyleOptions { flatten?: StyleFlatten; flattenIfNoTransforms?: StyleFlatten; mode?: StyleMode; transforms?: Style['transforms']; } export declare class Style { options: StyleOptions; static get [Symbol.species](): typeof Style; transforms: Array; mode: StyleMode; flatten?: StyleFlatten; flattenIfNoTransforms?: StyleFlatten; constructor(options?: StyleOptions); get args(): this; get full(): this; get both(): this; private getTransforms; add(...transforms: StyleOptions['transforms']): Style; copy(): T; get p(): string; get $(): StyleTemplate; $$(s: string): T; get transform(): (s: string) => any; private isArgsMode; private isFullMode; protected styleTemplate(): StyleTemplate; applyTransformsToKeys(...keys: any[]): any[]; applyTransforms(...args: any[]): any; } export declare const stringify: Style; export declare const flattenStringStyle: Style; export declare function style(...transforms: StyleOptions['transforms']): Style;