import type { FrameworkTokens } from './config'; export interface ThemeDefinition { name: string; tokens: FrameworkTokens; inheritsFrom?: string; } export type ThemeChangeListener = (theme: ThemeDefinition) => void; /** * Runtime theme manager. Handles registration, inheritance and notifies * listeners whenever the active theme changes. */ export declare class ThemeManager { private themes; private activeTheme?; private listeners; register(theme: ThemeDefinition): void; onChange(listener: ThemeChangeListener): () => void; apply(name: string): void; /** * Applies a theme to a specific scope (element or selector) and marks it with data-theme. * Falls back to setting tokens directly on the element when @scope is unavailable. */ applyScoped(name: string, scope: HTMLElement | string): void; getActiveTheme(): string | undefined; private resolveTheme; private notifyListeners; } //# sourceMappingURL=theme-manager.d.ts.map