import { Color } from '@alyle/ui/color';
type Selectors = string[] | string;
/**
 * Transform a lyl style block to CSS
 */
export declare class LylParse {
    private _template;
    private _className;
    private _isServer;
    /** Is true when used inside lyl */
    private _isDevMode;
    constructor(_template: string, _className: string, _isServer: boolean, 
    /** Is true when used inside lyl */
    _isDevMode: boolean);
    toCss(): string;
    private _createRule;
    private _createRuleWithResolvedSelector;
    private _appendDeclaration;
    private _removeParentSelector;
}
export declare function resolveSelectors(selectors: Selectors[], ignoreMediaQuery?: boolean): string;
export type StyleTemplate = (className: string) => string;
export declare function lyl(literals: TemplateStringsArray, ...placeholders: (string | Color | StyleCollection | number | StyleTemplate | null | undefined)[]): (className: string) => string;
type Transformer<T> = (st: T) => (StyleTemplate);
export declare class StyleCollection<T = any> {
    private _templates;
    private _transformer?;
    constructor(...templates: (T)[]);
    add(...templates: (T)[]): StyleCollection<T>;
    add(...templates: (StyleTemplate | T)[]): StyleCollection;
    /** Transform style */
    setTransformer(transformer: Transformer<T>): this;
    /**
     * @return StyleTemplate
     * @docs-private
     */
    css(className: string): string;
}
/**
 * Transform a ...{style} to css
 * For internal use purposes only
 * @param fn StyleTemplate or StyleCollection
 * @param className class name
 */
export declare function st2c(fn: StyleTemplate | StyleCollection | null | undefined, className: string): string;
export declare class StringIdGenerator {
    private _chars;
    private _nextId;
    constructor(chars?: string);
    next(): string;
    private _increment;
}
export {};
