import { CSSResult } from 'lit';
import { Provider } from '../../models';
import ThemeProviderContext from './themeprovider.context';
/**
 * ThemeProvider component, which sets the passed in themeclass as class.
 * If the themeclass switches, the existing themeclass will be removed as a class
 * and the new themeclass will be added.
 *
 * CSS variables defined in the themeclass will be used for the styling of child dom nodes.
 *
 * Available Momentum theme classes:
 *
 * `mds-theme-stable-darkWebex`, `mds-theme-stable-lightWebex`
 *
 * `mds-theme-stable-darkBronzeWebex`, `mds-theme-stable-lightBronzeWebex`
 *
 * `mds-theme-stable-darkIndigoWebex`, `mds-theme-stable-lightIndigoWebex`
 *
 * `mds-theme-stable-darkJadeWebex`, `mds-theme-stable-lightJadeWebex`
 *
 * `mds-theme-stable-darkLavenderWebex`, `mds-theme-stable-lightLavenderWebex`
 *
 * `mds-theme-stable-darkRoseWebex`, `mds-theme-stable-lightRoseWebex`
 *
 * Themeclass context can be be consumed from Lit child components
 * (see providerUtils.consume for how to consume)
 *
 * ThemeProvider also includes basic font defaults for text.
 *
 * @tagname mdc-themeprovider
 *
 * @slot - children
 *
 * @cssproperty --mdc-themeprovider-color-default - Option to override the default color,
 * default: color-theme-text-primary-normal
 * @cssproperty --mdc-themeprovider-font-family - Option to override the font family,
 * default: `Momentum` (from momentum-design/fonts)
 * @cssproperty --mdc-themeprovider-font-weight - Option to override the font weight, default: `400`
 * default: `-0.25px` (this is to match the old CiscoSans)
 * @cssproperty --mdc-themeprovider-scrollbar-track-color - Option to override the color of the scrollbar track.
 * @cssproperty --mdc-themeprovider-scrollbar-thumb-color - Option to override the color of the scrollbar thumb.
 */
declare class ThemeProvider extends Provider<ThemeProviderContext> {
    constructor();
    /**
     * Context object of the ThemeProvider, to be consumed by child components
     */
    static get Context(): {
        __context__: ThemeProviderContext;
    };
    /**
     * To keep track of the current theme class
     * @internal
     */
    private currentThemeClass?;
    /**
     * Current theme class
     *
     * Has to be fully qualified, such that
     * the theme class matches the class of the respective
     * theme stylesheet
     *
     * Default: 'mds-theme-stable-darkWebex'
     */
    themeclass: string;
    protected updated(changedProperties: Map<string, any>): void;
    /**
     * Update all observing components of this
     * provider to update the themeclass
     *
     * Is called on every re-render, see Provider class
     */
    protected updateContext(): void;
    /**
     * Function to update the active theme classnames to update the theme tokens
     * as CSS variables on the web component.
     */
    private setThemeInClassList;
    static styles: Array<CSSResult>;
}
export default ThemeProvider;
