import { ITheme } from '@breadstone/mosaik-themes';
import { CustomElement } from '../Controls/Components/Abstracts/CustomElement';
import { IThemeElementProps } from './IThemeElementProps';
/**
 * The `{@link Theme2Element}` element.
 *
 * @public
 */
export declare class Theme2Element extends CustomElement implements IThemeElementProps {
    private _theme;
    private _isInline;
    private readonly _globalStyleSheet;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `theme` property.
     *
     * @public
     */
    get theme(): ITheme | null;
    set theme(value: ITheme | null);
    /**
     * Gets or sets the `isInline` property.
     *
     * @public
     */
    get isInline(): boolean;
    set isInline(value: boolean);
    /**
     * @public
     * @override
     */
    connectedCallback(): void;
    /**
     * @public
     * @override
     */
    disconnectedCallback(): void;
    /**
     * @protected
     */
    protected onThemePropertyChanged(prev?: ITheme, next?: ITheme): void;
    /**
     * Converts a camelCase string to kebab-case.
     *
     * @private
     */
    private toKebabCase;
    /**
     * Gets the current theme name or empty string.
     *
     * @private
     */
    private getThemeName;
    /**
     * Sets a CSS variable both locally on this element and globally.
     *
     * @private
     */
    private setCssVariable;
    /**
     * Normalizes a CssLength value to a px string.
     *
     * @private
     */
    private normalizeCssLength;
}
export declare namespace Theme2Element {
    type Props = IThemeElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-theme2': Theme2Element;
    }
}
//# sourceMappingURL=Theme2Element.d.ts.map