import GirafeHTMLElement from '../../base/GirafeHTMLElement.js';
import ThemeLayer from '../../models/layers/themelayer.js';
import CustomTheme from '../../models/customtheme.js';
declare const ThemeTypes: readonly ["all", "favorites", "custom"];
type ThemeType = (typeof ThemeTypes)[number];
declare class ThemeComponent extends GirafeHTMLElement {
    protected templateUrl: string | null;
    protected styleUrls: string[] | null;
    template: () => import("uhtml").Hole;
    newIcon: string;
    menuOpen: boolean;
    openedOnce: boolean;
    activeThemeType: ThemeType;
    clickOutsideContainer: HTMLElement | null;
    get customThemes(): CustomTheme[];
    get allThemes(): Record<number, ThemeLayer>;
    get favoriteThemes(): (ThemeLayer | CustomTheme)[];
    get activeThemes(): Record<number, ThemeLayer> | (ThemeLayer | CustomTheme)[];
    constructor();
    registerEvents(): void;
    render(): void;
    onBlur(): void;
    toggleThemesList(): void;
    activateThemeType(themeType: ThemeType): void;
    onThemeChanged(theme: ThemeLayer | CustomTheme): void;
    isThemeActive(theme: ThemeLayer | CustomTheme): boolean;
    isThemeFavorite(theme: ThemeLayer | CustomTheme): boolean;
    onThemeFavoriteChanged(theme: ThemeLayer | CustomTheme, e: Event): void;
    isThemeTypeActive(themeType: ThemeType): boolean;
    isCustomTheme(theme: ThemeLayer | CustomTheme): theme is CustomTheme;
    onCustomThemeChanged(customTheme: CustomTheme): void;
    onAddCustomTheme(): Promise<void>;
    onDeleteCustomTheme(customTheme: CustomTheme, e: Event): Promise<void>;
    protected connectedCallback(): void;
}
export default ThemeComponent;
