import { DesignToken, FoundationElement } from '@ni/fast-foundation';
import { Direction } from '@ni/fast-web-utilities';
import { Theme } from './types';
import type { ValidityObject } from '../utilities/models/validator';
export { Direction };
declare global {
    interface HTMLElementTagNameMap {
        'nimble-theme-provider': ThemeProvider;
    }
}
export declare const lang: DesignToken<string>;
export declare const direction: DesignToken<Direction>;
export declare const theme: DesignToken<Theme>;
/**
 * The ThemeProvider implementation. Add this component to the page and set its `theme` attribute to control
 * the values of design tokens that provide colors and fonts as CSS custom properties to any descendant components.
 * @internal
 */
export declare class ThemeProvider extends FoundationElement {
    lang: string;
    direction?: Direction;
    theme: Theme;
    get validity(): ValidityObject;
    private langIsInvalid;
    checkValidity(): boolean;
    langChanged(_prev: string | undefined | null, next: string | undefined | null): void;
    directionChanged(_prev: Direction | undefined | null, next: Direction | undefined | null): void;
    themeChanged(_prev: Theme | undefined | null, next: Theme | undefined | null): void;
}
export declare const themeProviderTag = "nimble-theme-provider";
