export interface Rgba {
    red: number;
    green: number;
    blue: number;
    alpha?: number;
}
export interface FontSpec {
    name?: string;
    size?: number;
    bold?: boolean;
    italic?: boolean;
}
export declare const styles: {
    styleMap: {};
    element: HTMLDivElement;
    /**
     * Generates an invisible div and appends it to the body, only once. The same div will be reused on subsequent calls.
     * Adds the given css class to that element and returns a style object containing the values for every given property.
     * The style is cached. Subsequent calls with the same css class will return the same style object.
     *
     * @param styleProperties in the form {backgroundColor: 'black'}
     */
    get(cssClass: string | string[], properties: string | string[], styleProperties?: Record<string, string>): Record<string, string>;
    /**
     * Traverses the parents of the given $elem and returns the first opaque background color.
     */
    getFirstOpaqueBackgroundColor($elem: JQuery<Element>): string;
    getSize(cssClass: string | string[], cssProperty: string | string[], property: string, defaultSize?: number): number;
    put(cssClass: string, style: Record<string, string>): void;
    clearCache(): void;
    /**
     * Extracts the given attribute from the given CSS class and returns its value.
     *
     * If the provided class does not exist, the computed element style of the provided
     * attribute is returned. If the extracted value is unset, `null` is returned.
     *
     * @param cssClass any CSS class
     * @param attribute optional CSS attribute to extract the color from, default is _backgroundColor_
     */
    getCssColor(cssClass: string, attribute?: string): string;
    RGB_BLACK: Rgba;
    RGB_WHITE: Rgba;
    /**
     * Creates a rgb object based on the given rgb string with the format rgb(0, 0, 0).
     * If the input string cannot be parsed, undefined is returned.
     */
    rgb(rgbString: string): Rgba;
    /**
     * Converts the given hex string to a rgb string.
     */
    hexToRgb(hexString: string): string;
    /**
     * Returns the given rgb color in hex format.
     *
     * @param rgba a color in rgb or rgba format
     * @param forceRemoveAlpha true, if the alpha value should be removed, otherwise false.
     * @returns the color in hex format
     */
    rgbToHex(rgba: string, forceRemoveAlpha?: boolean): string;
    /**
     * Make a given color darker by mixing it with a certain amount of black.
     * If no color is specified or the color cannot be parsed, undefined is returned.
     *
     * @param color
     *          a CSS color in 'rgb()' or 'rgba()' format.
     * @param ratio
     *          a number between 0 and 1 specifying how much black should be added
     *          to the given color (0.0 = only 'color', 1.0 = only black).
     *          Default is 0.2.
     */
    darkerColor(color: string, ratio?: number): string;
    /**
     * Make a given color lighter by mixing it with a certain amount of white.
     * If no color is specified or the color cannot be parsed, undefined is returned.
     *
     * @param color
     *          a CSS color in 'rgb()' or 'rgba()' format.
     * @param ratio
     *          a number between 0 and 1 specifying how much white should be added
     *          to the given color (0.0 = only 'color', 1.0 = only white).
     *          Default is 0.2.
     */
    lighterColor(color: string, ratio?: number): string;
    /**
     * Merges two RGB colors as defined by rgb().
     *
     * The two 'ratio' arguments specify "how much" of the corresponding color is added to the
     * resulting color. Both arguments should (but don't have to) add to 1.0.
     *
     * All arguments are mandatory.
     */
    mergeRgbColors(colorA: string | Rgba, ratio1?: number, colorB?: string | Rgba, ratio2?: number): string;
    /**
     * Example: Dialog-PLAIN-12
     */
    parseFontSpec(pattern: string): FontSpec;
    modelToCssColor(color: string): string;
    /**
     * Returns a string with CSS definitions for use in an element's "style" attribute. All CSS relevant
     * properties of the given object are converted to CSS definitions, namely foreground color, background
     * color and font.
     *
     * If an $element is provided, the CSS definitions are directly applied to the element. This can be
     * useful if the "style" attribute is shared and cannot be replaced in its entirety.
     *
     * If propertyPrefix is provided, the prefix will be applied to the properties, e.g. if the prefix is
     * 'label' the properties labelFont, labelBackgroundColor and labelForegroundColor are used instead of
     * just font, backgroundColor and foregroundColor.
     */
    legacyStyle(obj: object, $element?: JQuery, propertyPrefix?: string): string;
    legacyForegroundColor(obj: object, $element?: JQuery, propertyPrefix?: string): string;
    legacyBackgroundColor(obj: object, $element?: JQuery, propertyPrefix?: string): string;
    legacyFont(obj: object, $element?: JQuery, propertyPrefix?: string): string;
    /**
     * Adds the css classes to the existing css classes.
     *
     * @param cssClass existing cssClass, multiple css classes separated by space.
     * @param cssClassToAdd may contain multiple css classes separated by space.
     */
    addCssClass(cssClass: string, cssClassToAdd: string): string;
    /**
     * Removes the css classes to the existing css classes.
     *
     * @param cssClass existing cssClass, multiple css classes separated by space.
     * @param cssClassToRemove may contain multiple css classes separated by space.
     */
    removeCssClass(cssClass: string, cssClassToRemove: string): string;
    /**
     * Toggles, i.e. adds (see {@link styles#addCssClass}) or removes (see {@link styles#removeCssClass}), the css classes depending on the condition.
     *
     * @param cssClass existing cssClass, multiple css classes separated by space.
     * @param cssClassToToggle may contain multiple css classes separated by space.
     */
    toggleCssClass(cssClass: string, cssClassToToggle: string, condition: boolean): string;
    /**
     * Checks whether the css classes are contained in the existing css classes.
     *
     * @param cssClass existing cssClass, multiple css classes separated by space.
     * @param cssClassToFind may contain multiple css classes separated by space.
     */
    hasCssClass(cssClass: string, cssClassToFind: string): boolean;
    /**
     * Splits the css classes into an array.
     *
     * @param cssClass multiple css classes separated by space.
     */
    cssClassAsArray(cssClass: string): string[];
    _getElement(): HTMLDivElement;
};
//# sourceMappingURL=styles.d.ts.map