import { LitElement } from 'lit';
import { Icon } from '../icon';
import { Control } from '../forms';
import { Divider } from '../divider';
import { Menu, MenuItem } from '../menu';
import { Switch } from '../switch';
export type ColorScheme = 'auto' | 'light' | 'dark' | 'high-contrast';
export type Scale = 'default' | 'compact' | 'relaxed';
export type Variant = 'reduced-motion';
export interface PreferencesInputValue {
    'color-scheme'?: ColorScheme | string;
    scale?: Scale | string;
    'reduced-motion'?: boolean;
}
declare const PreferencesInput_base: import('@nvidia-elements/forms/mixins').FormControlMixinReturn<typeof LitElement, PreferencesInputValue>;
/**
 * @element nve-preferences-input
 * @description A preferences input is a widget for controlling apperance. Stylesheets register to the preferences input by including a css-property, see Standard for an example.
 * @since 1.23.7
 * @entrypoint \@nvidia-elements/core/preferences-input
 * @event input - Dispatched when the value has changed
 * @event change - Dispatched when the value has changed
 * @cssprop --color
 * @cssprop --width
 * @csspart control - The control wrapper elements that contain the labels and menus
 * @csspart menu - The menu elements that display color scheme and scale options
 * @csspart menu-item - The individual menu item elements for each selectable option
 * @csspart icon - The icon element displayed next to color scheme options
 * @csspart divider - The divider elements that separate preference sections
 * @csspart switch - The switch element for the reduced motion toggle
 *
 * @aria https://www.w3.org/WAI/ARIA/apg/patterns/listbox/
 *
 */
export declare class PreferencesInput extends PreferencesInput_base {
    #private;
    /**
     * Enables updating internal string values for internationalization.
     */
    i18n: Partial<import('../internal').I18nStrings & {
        __set: boolean;
    }>;
    static styles: import('lit').CSSResult[];
    static readonly metadata: {
        tag: string;
        version: string;
        valueSchema: {
            type: "object";
            properties: {
                'color-scheme': {
                    type: "string";
                };
                scale: {
                    type: "string";
                };
                'reduced-motion': {
                    type: "boolean";
                };
            };
        };
    };
    static elementDefinitions: {
        [Control.metadata.tag]: typeof Control;
        [Divider.metadata.tag]: typeof Divider;
        [Icon.metadata.tag]: typeof Icon;
        [Menu.metadata.tag]: typeof Menu;
        [MenuItem.metadata.tag]: typeof MenuItem;
        [Switch.metadata.tag]: typeof Switch;
    };
    private activePreferences;
    render(): import('lit-html').TemplateResult<1>;
    constructor();
    connectedCallback(): void;
    /** @private */
    updateValue(value: PreferencesInputValue): void;
}
export {};
