import { TextAlignMode } from '../helpers/TextHelper.js';
import type { FlexAlignment2D } from './FlexAlignment2D.js';
import type { ThemeProperties } from './ThemeProperties.js';
import type { Alignment2D } from './Alignment2D.js';
import type { FillStyle } from './FillStyle.js';
import type { Padding } from './Padding.js';
import type { Theme } from './Theme.js';
import type { CornerRadii } from '../widgets/CornerRadii.js';
/**
 * The base class for {@link Widget} and {@link Theme}. The backbone of the
 * theming system.
 *
 * @category Theme
 */
export declare class BaseTheme implements ThemeProperties {
    /** See {@link BaseTheme#fallbackTheme} */
    private _fallbackTheme?;
    /** Listener for theme fallback */
    private listener;
    /**
     * The fallback theme. If this theme has a missing property, the fallback
     * theme's property will be used instead. This will automatically
     * (un)subscribe to/from the fallback theme.
     */
    protected get fallbackTheme(): Theme | undefined;
    protected set fallbackTheme(newTheme: Theme | undefined);
    /**
     * Called when the fallback theme changes. Does nothing by default.
     *
     * @param property - The property name of the theme property that was updated. If a general theme update, then this will be null and all theme properties should be treated as changed.
     */
    protected onThemeUpdated(property?: string | null): void;
    constructor(properties?: ThemeProperties, fallbackTheme?: Theme);
    /** See {@link BaseTheme#canvasFill}. For internal use only. */
    private _canvasFill?;
    get canvasFill(): FillStyle;
    set canvasFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#containerPadding}. For internal use only. */
    private _containerPadding?;
    get containerPadding(): Padding;
    set containerPadding(value: Padding | undefined);
    /** See {@link BaseTheme#containerAlignment}. For internal use only. */
    private _containerAlignment?;
    get containerAlignment(): Alignment2D;
    set containerAlignment(value: Alignment2D | undefined);
    /** See {@link BaseTheme#multiContainerSpacing}. For internal use only. */
    private _multiContainerSpacing?;
    get multiContainerSpacing(): number;
    set multiContainerSpacing(value: number | undefined);
    /** See {@link BaseTheme#multiContainerAlignment}. For internal use only. */
    private _multiContainerAlignment?;
    get multiContainerAlignment(): FlexAlignment2D;
    set multiContainerAlignment(value: FlexAlignment2D | undefined);
    /** See {@link BaseTheme#primaryFill}. For internal use only. */
    private _primaryFill?;
    get primaryFill(): FillStyle;
    set primaryFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#accentFill}. For internal use only. */
    private _accentFill?;
    get accentFill(): FillStyle;
    set accentFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#backgroundFill}. For internal use only. */
    private _backgroundFill?;
    get backgroundFill(): FillStyle;
    set backgroundFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#backgroundGlowFill}. For internal use only. */
    private _backgroundGlowFill?;
    get backgroundGlowFill(): FillStyle;
    set backgroundGlowFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#sliderMinLength}. For internal use only. */
    private _sliderMinLength?;
    get sliderMinLength(): number;
    set sliderMinLength(value: number | undefined);
    /** See {@link BaseTheme#sliderThickness}. For internal use only. */
    private _sliderThickness?;
    get sliderThickness(): number;
    set sliderThickness(value: number | undefined);
    /** See {@link BaseTheme#bodyTextFont}. For internal use only. */
    private _bodyTextFont?;
    get bodyTextFont(): string;
    set bodyTextFont(value: string | undefined);
    /** See {@link BaseTheme#bodyTextFill}. For internal use only. */
    private _bodyTextFill?;
    get bodyTextFill(): FillStyle;
    set bodyTextFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#bodyTextHeight}. For internal use only. */
    private _bodyTextHeight?;
    get bodyTextHeight(): number | null;
    set bodyTextHeight(value: number | null | undefined);
    /** See {@link BaseTheme#bodyTextSpacing}. For internal use only. */
    private _bodyTextSpacing?;
    get bodyTextSpacing(): number | null;
    set bodyTextSpacing(value: number | null | undefined);
    /** See {@link BaseTheme#bodyTextAlign}. For internal use only. */
    private _bodyTextAlign?;
    get bodyTextAlign(): TextAlignMode | number;
    set bodyTextAlign(value: TextAlignMode | number | undefined);
    /** See {@link BaseTheme#checkboxLength}. For internal use only. */
    private _checkboxLength?;
    get checkboxLength(): number;
    set checkboxLength(value: number | undefined);
    /** See {@link BaseTheme#checkboxInnerPadding}. For internal use only. */
    private _checkboxInnerPadding?;
    get checkboxInnerPadding(): number;
    set checkboxInnerPadding(value: number | undefined);
    /** See {@link BaseTheme#inputBackgroundFill}. For internal use only. */
    private _inputBackgroundFill?;
    get inputBackgroundFill(): FillStyle;
    set inputBackgroundFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#inputSelectBackgroundFill}. For internal use only. */
    private _inputSelectBackgroundFill?;
    get inputSelectBackgroundFill(): FillStyle;
    set inputSelectBackgroundFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#inputTextFont}. For internal use only. */
    private _inputTextFont?;
    get inputTextFont(): string;
    set inputTextFont(value: string | undefined);
    /** See {@link BaseTheme#inputTextFill}. For internal use only. */
    private _inputTextFill?;
    get inputTextFill(): FillStyle;
    set inputTextFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#inputTextFillDisabled}. For internal use only. */
    private _inputTextFillDisabled?;
    get inputTextFillDisabled(): FillStyle;
    set inputTextFillDisabled(value: FillStyle | undefined);
    /** See {@link BaseTheme#inputTextFillInvalid}. For internal use only. */
    private _inputTextFillInvalid?;
    get inputTextFillInvalid(): FillStyle;
    set inputTextFillInvalid(value: FillStyle | undefined);
    /** See {@link BaseTheme#inputTextHeight}. For internal use only. */
    private _inputTextHeight?;
    get inputTextHeight(): number | null;
    set inputTextHeight(value: number | null | undefined);
    /** See {@link BaseTheme#inputTextSpacing}. For internal use only. */
    private _inputTextSpacing?;
    get inputTextSpacing(): number | null;
    set inputTextSpacing(value: number | null | undefined);
    /** See {@link BaseTheme#inputTextInnerPadding}. For internal use only. */
    private _inputTextInnerPadding?;
    get inputTextInnerPadding(): number;
    set inputTextInnerPadding(value: number | undefined);
    /** See {@link BaseTheme#inputTextMinWidth}. For internal use only. */
    private _inputTextMinWidth?;
    get inputTextMinWidth(): number;
    set inputTextMinWidth(value: number | undefined);
    /** See {@link BaseTheme#inputTextAlign}. For internal use only. */
    private _inputTextAlign?;
    get inputTextAlign(): TextAlignMode | number;
    set inputTextAlign(value: TextAlignMode | number | undefined);
    /** See {@link BaseTheme#blinkRate}. For internal use only. */
    private _blinkRate?;
    get blinkRate(): number;
    set blinkRate(value: number | undefined);
    /** See {@link BaseTheme#cursorThickness}. For internal use only. */
    private _cursorThickness?;
    get cursorThickness(): number;
    set cursorThickness(value: number | undefined);
    /** See {@link BaseTheme#cursorIndicatorSize}. For internal use only. */
    private _cursorIndicatorSize?;
    get cursorIndicatorSize(): number;
    set cursorIndicatorSize(value: number | undefined);
    /** See {@link BaseTheme#scrollBarThickness}. For internal use only. */
    private _scrollBarThickness?;
    get scrollBarThickness(): number;
    set scrollBarThickness(value: number | undefined);
    /** See {@link BaseTheme#scrollBarMinPercent}. For internal use only. */
    private _scrollBarMinPercent?;
    get scrollBarMinPercent(): number;
    set scrollBarMinPercent(value: number | undefined);
    /** See {@link BaseTheme#scrollBarMinPixels}. For internal use only. */
    private _scrollBarMinPixels?;
    get scrollBarMinPixels(): number;
    set scrollBarMinPixels(value: number | undefined);
    /** See {@link BaseTheme#radioButtonLength}. For internal use only. */
    private _radioButtonLength?;
    get radioButtonLength(): number;
    set radioButtonLength(value: number | undefined);
    /** See {@link BaseTheme#radioButtonInnerPadding}. For internal use only. */
    private _radioButtonInnerPadding?;
    get radioButtonInnerPadding(): number;
    set radioButtonInnerPadding(value: number | undefined);
    /** See {@link BaseTheme#roundedCornersRadii}. For internal use only. */
    private _roundedCornersRadii?;
    get roundedCornersRadii(): CornerRadii;
    set roundedCornersRadii(value: CornerRadii | undefined);
    /** See {@link BaseTheme#tooltipFill}. For internal use only. */
    private _tooltipFill?;
    get tooltipFill(): FillStyle;
    set tooltipFill(value: FillStyle | undefined);
    /** See {@link BaseTheme#tooltipPadding}. For internal use only. */
    private _tooltipPadding?;
    get tooltipPadding(): Padding;
    set tooltipPadding(value: Padding | undefined);
    /** See {@link BaseTheme#tooltipRadii}. For internal use only. */
    private _tooltipRadii?;
    get tooltipRadii(): CornerRadii;
    set tooltipRadii(value: CornerRadii | undefined);
    /** See {@link BaseTheme#scrollbarCornersRadii}. For internal use only. */
    private _scrollbarCornersRadii?;
    get scrollbarCornersRadii(): CornerRadii;
    set scrollbarCornersRadii(value: CornerRadii | undefined);
    /** See {@link BaseTheme#scrollbarPadding}. For internal use only. */
    private _scrollbarPadding?;
    get scrollbarPadding(): Padding;
    set scrollbarPadding(value: Padding | undefined);
    /** See {@link BaseTheme#mediaFallbackFill}. For internal use only. */
    private _mediaFallbackFill?;
    get mediaFallbackFill(): FillStyle;
    set mediaFallbackFill(value: FillStyle | undefined);
}
