import { LitElement, nothing } from 'lit';
import '../button/button.js';
import '../slider/slider.js';
import '../toggle-switch/toggle-switch.js';
import '../toggle-button-group/toggle-button-group.js';
import '../toggle-button-option/toggle-button-option.js';
import '../../icons/icon-display-brilliance-low.js';
import '../../icons/icon-display-brilliance-proposal.js';
import '../../icons/icon-palette-night.js';
import '../../icons/icon-palette-dusk.js';
import '../../icons/icon-palette-day.js';
import '../../icons/icon-palette-day-bright.js';
import '../../icons/icon-link.js';
import '../../icons/icon-chevron-double-right-google.js';
import '../../icons/icon-chevron-double-left-google.js';
import '../../icons/icon-chevron-left-google.js';
import '../../icons/icon-chevron-right-google.js';
import '../../icons/icon-screen-desk.js';
import '../progress-indicator-dots/progress-indicator-dots.js';
import '../navigation-item/navigation-item.js';
import '../app-button/app-button.js';
import '../user-button/user-button.js';
import '../tabbed-card/tabbed-card.js';
import '../../icons/icon-display-brilliance-iec.js';
import '../../icons/icon-palette-day-night-iec.js';
export declare enum ObcPalette {
    night = "night",
    dusk = "dusk",
    day = "day",
    bright = "bright"
}
export declare enum ObcBrillianceMenuVariant {
    normal = "normal",
    compact = "compact",
    tabbed = "tabbed"
}
export declare enum ObcBrillianceInputVariant {
    buttons = "buttons",
    slider = "slider"
}
export type ObcPaletteChangeEvent = CustomEvent<{
    value: ObcPalette;
}>;
export type ObcBrightnessChangeEvent = CustomEvent<{
    value: number;
}>;
export type ObcLinkPaletteChangeEvent = CustomEvent<{
    value: boolean;
}>;
export type ObcLinkBrightnessChangeEvent = CustomEvent<{
    value: boolean;
}>;
/**
 * Event fired when the palette is changed.
 * @typedef {CustomEvent<{value: ObcPalette}>} ObcPaletteChangeEvent
 */
/**
 * Event fired when the brightness is changed.
 * @typedef {CustomEvent<{value: number}>} ObcBrightnessChangeEvent
 */
/**
 * `<obc-brilliance-menu>` – A settings menu component for adjusting display palette and brightness.
 *
 * Provides a combined interface for users to select a color palette (night, dusk, day, bright) and adjust screen brightness. Includes options for toggling automatic palette and brightness modes. Designed for quick access to visual environment controls in applications where adaptable display settings are important.
 *
 * ### Features
 * - **Palette Selection:** Choose between four preset palettes: night, dusk, day, and bright. Each palette is represented by an icon.
 * - **Brightness Control:** Adjustable slider for fine-tuning brightness from 0 to 100. Optionally displays left/right icons for low and high brilliance.
 * - **Auto Modes:** Optional toggles for enabling automatic palette switching and automatic brightness adjustment.
 * - **Configurable Visibility:** Brightness controls and auto toggles can be shown or hidden via properties.
 * - **Responsive Layout:** Arranged in a card-style panel for use in settings menus or overlays.
 *
 * ### Variants
 * - **Palette:** Four options—`night`, `dusk`, `day`, `bright`. Each is visually distinct and selectable via toggle button group.
 * - **Auto Toggles:** `showAutoBrightness` and `showAutoPalette` properties control the presence of auto mode switches.
 * - **Show Brightness:** The `showBrightness` property controls whether the brightness slider and auto brightness toggle are visible.
 *
 * ### Usage Guidelines
 * Use `obc-brilliance-menu` in settings panels or overlays where users need to quickly adjust display appearance. Ideal for scenarios requiring rapid adaptation to changing lighting conditions or user preferences.
 * **TODO(designer):** Confirm if there are recommended default palette/brightness settings, and clarify intended use cases for auto toggles versus manual controls.
 *
 * ### Properties and Configuration
 * - `palette` (`ObcPalette`): The currently selected palette. Accepts `'night'`, `'dusk'`, `'day'`, or `'bright'`. Defaults to `'day'`.
 * - `brightness` (`number`): Current brightness value (0–100). Defaults to `50`.
 * - `showAutoBrightness` (`boolean`): If true, displays the auto brightness toggle.
 * - `showAutoPalette` (`boolean`): If true, displays the auto palette toggle.
 * - `showBrightness` (`boolean`): If true, shows the brightness slider and auto brightness toggle.
 *
 * ### Events
 * - `palette-changed` – Fired when the user selects a new palette. Event detail: `{ value: ObcPalette }`
 * - `brightness-changed` – Fired when the brightness slider is adjusted. Event detail: `{ value: number }`
 *
 * ### Example
 * ```html
 * <obc-brilliance-menu
 *   palette="dusk"
 *   brightness="75"
 *   showAutoBrightness
 *   showAutoPalette
 * ></obc-brilliance-menu>
 * ```
 * In this example, both auto toggles are visible, the palette is set to dusk, and brightness is set to 75.
 *
 * @fires palette-changed {ObcPaletteChangeEvent} When the palette is changed
 * @fires brightness-changed {ObcBrightnessChangeEvent} When the brightness is changed
 * @fires link-palette-changed {ObcLinkPaletteChangeEvent} When the link palette toggle is changed
 * @fires link-brightness-changed {ObcLinkBrightnessChangeEvent} When the link brightness toggle is changed
 * @fires screen-control-link-clicked {CustomEvent} When the screen control link is clicked
 */
export declare class ObcBrillianceMenu extends LitElement {
    /**
     * The currently selected palette. Possible values: `'night'`, `'dusk'`, `'day'`, `'bright'`.
     * Defaults to `'day'`.
     */
    palette: ObcPalette;
    /**
     * The current brightness value (0–100). Defaults to `50`.
     */
    brightness: number;
    /**
     * If true, displays the link brightness toggle below the brightness slider.
     */
    showLinkBrightness: boolean;
    /**
     * If true, displays the link palette toggle below the palette selector.
     */
    showLinkPalette: boolean;
    /**
     * If true, shows the brightness slider and auto brightness toggle in the menu.
     */
    showBrightness: boolean;
    /**
     * If true, shows the palette selector and link palette toggle in the menu.
     */
    showPalette: boolean;
    showNightPalette: boolean;
    showDuskPalette: boolean;
    showDayPalette: boolean;
    showBrightPalette: boolean;
    /**
     * The variant of the menu. Possible values: `'normal'`, `'compact'`.
     * Defaults to `'normal'`.
     */
    variant: ObcBrillianceMenuVariant;
    /**
     * The unit of the brightness value.
     */
    brightnessUnit: string;
    /**
     * The maximum value of the brightness slider.
     */
    brightnessMax: number;
    /**
     * The minor step of the brightness slider.
     */
    brightnessMinorStep: number;
    /**
     * The major step of the brightness slider.
     */
    brightnessMajorStep: number;
    /**
     * The variant of the brightness input.
     */
    brightnessInputVariant: ObcBrillianceInputVariant;
    /**
     * If true, displays the screen control link.
     */
    showScreenControlLink: boolean;
    willUpdate(_changed: Map<string, unknown>): void;
    /**
     * Handles palette selection changes and emits `palette-changed`.
     * @fires palette-changed
     * @param {CustomEvent} event
     */
    onPaletteChanged(event: CustomEvent): void;
    /**
     * Handles brightness slider changes and emits `brightness-changed`.
     * @fires brightness-changed
     * @param {CustomEvent} event
     */
    handleBrightnessChanged(event: CustomEvent): void;
    increaseBrightness(step: number): void;
    get canIncreaseBrightness(): boolean;
    get canDecreaseBrightness(): boolean;
    /**
     * Handles link palette changes and emits `link-palette-changed`.
     * @fires link-palette-changed
     * @param {CustomEvent} event
     */
    onLinkPaletteChanged(event: CustomEvent): void;
    /**
     * Handles link brightness changes and emits `link-brightness-changed`.
     * @fires link-brightness-changed
     * @param {CustomEvent} event
     */
    onLinkBrightnessChanged(event: CustomEvent): void;
    get availablePalettes(): ObcPalette[];
    get canIncreasePalette(): boolean;
    get canDecreasePalette(): boolean;
    nextPalette(): void;
    previousPalette(): void;
    renderBrightness(): import('lit-html').TemplateResult<1>;
    get effectivePalette(): ObcPalette;
    get paletteIcon(): import('lit-html').TemplateResult<1> | typeof nothing;
    private paletteOptions;
    renderPalette(): import('lit-html').TemplateResult<1> | typeof nothing;
    renderScreenControlLink(): import('lit-html').TemplateResult<1> | typeof nothing;
    render(): import('lit-html').TemplateResult<1>;
    handleScreenControlLinkClicked(): void;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-brilliance-menu': ObcBrillianceMenu;
    }
}
//# sourceMappingURL=brilliance-menu.d.ts.map