import { OptionalCSSStyles } from "./formats";
declare class CSSElement {
    cssCode: string;
    constructor();
    /** Updates css code of this element */
    update(): void;
    /** Removes this css element */
    remove(): void;
}
declare class CSSImportElem extends CSSElement {
    importUrl: string;
    additionalProperties?: string;
    constructor(importUrl: string, additionalProperties?: string);
    update(): void;
}
declare class CSSDeclaration extends CSSElement {
    selector: string;
    style: OptionalCSSStyles;
    /**
     * @param selector css selector, for example "p .bold", "#canvas"
     * @param declaration some css properties with values
     */
    constructor(selector: string, declaration: OptionalCSSStyles);
    update(): void;
}
/**
 * Does some css
 * @param selector
 * @param declaration
 * @returns
 */
declare function CSS(selector: string, declaration: OptionalCSSStyles): CSSDeclaration;
/**
 * Does some more css than CSS()
 * @param styles
 * @returns
 */
declare function Styles(styles: {
    [selector: string]: OptionalCSSStyles;
}): CSSDeclaration[];
/**
 * Uses @import thing in CSS
 * @param importUrl
 * @returns
 */
declare function CSSImport(importUrl: string): CSSImportElem;
export { CSS, Styles, CSSImport };
export type { CSSElement, CSSDeclaration, CSSImportElem };
