import type { CSSResult, ReactiveController, ReactiveControllerHost, ReactiveElement } from 'lit'; type Theme = 'material' | 'bootstrap' | 'indigo' | 'fluent'; type Themes = { light: { [K in Theme | 'shared']?: CSSResult; }; dark: { [K in Theme | 'shared']?: CSSResult; }; }; type ThemeChangedCallback = (theme: Theme) => unknown; type ThemingControllerConfig = { themeChange?: ThemeChangedCallback; }; declare class ThemingController implements ReactiveController { private readonly _host; private readonly _themes; private readonly _options?; private _theme; private _variant; get theme(): Theme; constructor(host: ReactiveControllerHost & ReactiveElement, themes: Themes, config?: ThemingControllerConfig); /** @internal */ hostConnected(): void; /** @internal */ hostDisconnected(): void; /** @internal */ handleEvent(): void; private _getStyles; protected _adoptStyles(): void; private _handleThemeChanged; } export declare function addThemingController(host: ReactiveControllerHost & ReactiveElement, themes: Themes, config?: ThemingControllerConfig): ThemingController; export type { ThemingController };