import { LitElement } from 'lit';
import '../nile-dropdown/nile-dropdown';
import '../nile-menu/nile-menu';
import '../nile-menu-item/nile-menu-item';
export type ColorPickerType = 'swatches' | 'picker';
export type ColorPickerMode = 'inline' | 'popover';
export type SwatchTooltip = 'name' | 'value' | 'both';
export type PaletteEntry = {
    color: string;
    name: string;
};
export declare const DEFAULT_PALETTE: PaletteEntry[];
export declare function hexToRgb(hex: string): [number, number, number];
export declare function rgbToHex(r: number, g: number, b: number): string;
export declare function rgbToHsv(r: number, g: number, b: number): [number, number, number];
export declare function hsvToRgb(h: number, s: number, v: number): [number, number, number];
export declare class NileColorPicker extends LitElement {
    protected createRenderRoot(): this;
    type: ColorPickerType;
    /** Currently selected hex color value. */
    value: string;
    /** What to show in swatch tooltips. */
    swatchTooltip: SwatchTooltip;
    /** How many recent/custom colors to display. */
    recentColorsCount: number;
    /** Show a "No Fill" button (useful for background-color use cases). */
    noFill: boolean;
    mode: ColorPickerMode;
    /** Show the SV gradient canvas (the large colour area). Applies when type="picker". */
    showCanvas: boolean;
    /** Show the hue slider row (rainbow bar + eyedropper). Applies when type="picker". */
    showHue: boolean;
    /** Show the HEX / RGB input row. Applies when type="picker". */
    showInputs: boolean;
    /** Show the Cancel / Okay action buttons. Applies when type="picker". */
    showActions: boolean;
    open: boolean;
    /** Custom palette. Accepts a JSON array of `{ color, name }` objects or plain
     *  hex strings. Falls back to the built-in palette when empty. */
    palette: PaletteEntry[];
    private _view;
    private _recentColors;
    private _hue;
    private _sat;
    private _val;
    private _colorMode;
    private _hexInput;
    private _r;
    private _g;
    private _b;
    private _svCanvas;
    private _hueCanvas;
    private _draggingSV;
    private _draggingHue;
    private _pendingColor;
    connectedCallback(): void;
    disconnectedCallback(): void;
    protected updated(changed: Map<string, unknown>): void;
    /** Reset the view back to the default type (call this when the host popover closes). */
    reset(): void;
    private _injectCss;
    private _norm;
    private get _paletteColors();
    private _emit;
    private _apply;
    private _closePopover;
    private _openPicker;
    private _syncInputs;
    private _drawSV;
    private _drawHue;
    private _onSVMouseDown;
    private _onHueMouseDown;
    private _onGlobalMouseMove;
    private _onGlobalMouseUp;
    private _commitPickerIfNoActions;
    private _updateSV;
    private _updateHue;
    private _onHexInput;
    private _onRgbInput;
    private _onColorModeSelect;
    private _pickEyedropper;
    private _renderSwatch;
    private _renderSwatchesView;
    private _renderPickerView;
    private _renderTrigger;
    render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'nile-color-picker': NileColorPicker;
    }
}
