import { OnDestroy, Renderer2, RendererFactory2 } from '@angular/core';
import { BehaviorSubject, Subscription } from 'rxjs';
import * as i0 from "@angular/core";
export interface KbqTheme {
    name: string;
    className: string;
    selected: boolean;
}
/**
 * Enum representing the available themes for the Koobiq design system.
 * This enum is used to manage and switch between different visual themes.
 */
export declare enum KbqThemeSelector {
    /**
     * Represents the default light theme.
     * This is the standard theme that is applied
     * when the application is first loaded if nothing else provided
     */
    Default = "kbq-light",
    /**
     * This theme is used to provide a darker visual experience, often preferred in low-light environments.
     */
    Dark = "kbq-dark"
}
export declare const KbqDefaultThemes: KbqTheme[];
export declare class ThemeService<T extends KbqTheme | null = KbqTheme> implements OnDestroy {
    protected readonly document: Document;
    protected readonly rendererFactory: RendererFactory2;
    protected renderer: Renderer2;
    current: BehaviorSubject<T>;
    themes: T[];
    protected subscription: Subscription;
    constructor();
    ngOnDestroy(): void;
    setThemes(items: T[]): void;
    setTheme(value: T | number): void;
    getTheme(): T;
    protected update: ([prev, current]: T[]) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ThemeService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ThemeService<any>>;
}
