import type { CustomElement } from '../Components/Abstracts/CustomElement';
import type { ControlBehaviorBase, ControlBehaviorReturn } from './Abstracts/Behavior';
import { CSSResultGroup } from '../../Dom/Css';
/**
 * Represents the `IThemeableProps` interface.
 *
 * @public
 */
export interface IThemeableProps {
    themeName: string;
}
/**
 * Represents the `IThemeableConstructor` type.
 *
 * @public
 */
export interface IThemeableCtor {
    new (...args: Array<any>): CustomElement;
    readonly themeStyles: Record<string, CSSResultGroup>;
    registerThemes: (themes: Record<string, CSSResultGroup>) => void;
}
/**
 * @public
 */
export declare const Themeable: <T extends ControlBehaviorBase<CustomElement>>(base: T) => ControlBehaviorReturn<T, IThemeableProps> & IThemeableCtor;
//# sourceMappingURL=Themeable.d.ts.map