import { type ReactiveController, type ReactiveControllerHost, type ReactiveElement } from 'lit';
import type { Theme, ThemeChangedCallback, ThemeController, ThemeVariant, Themes } from './types.js';
declare class ThemingController implements ReactiveController, ThemeController {
    private themes;
    private host;
    theme: Theme;
    themeVariant: ThemeVariant;
    onThemeChanged?: ThemeChangedCallback;
    constructor(host: ReactiveControllerHost & ReactiveElement, themes: Themes);
    hostConnected(): void;
    hostDisconnected(): void;
    handleEvent(): void;
    private getStyles;
    protected adoptStyles(): void;
    private themeChanged;
}
export declare function createThemeController(host: ReactiveControllerHost & ReactiveElement, themes: Themes): ThemingController;
export {};
