import Color from "@sphinxxxx/color-conversion";
import { Component } from "@ribajs/core";
import { EventDispatcher } from "@ribajs/events";
import { ColorPickerOptions } from "../../types/index.js";
interface EventBucketItem {
    target: HTMLElement | Window;
    type: Event["type"];
    handler: any;
}
declare class EventBucket {
    protected events: EventBucketItem[];
    add(target: HTMLElement | Window, type: Event["type"], handler: any): void;
    remove(target: HTMLElement, type: Event["type"], handler: any): void;
    static _doRemove(target: HTMLElement, type: Event["type"], handler: any): void;
    destroy(): void;
}
interface Scope extends ColorPickerOptions {
    namespace: string;
    hsl: number[];
    cssHue: string;
    cssHsl: string;
    cssHsla: string;
    alphaBg: string;
}
export declare class Bs5ColorPickerComponent extends Component {
    static tagName: string;
    static get observedAttributes(): string[];
    protected eventDispatcher?: EventDispatcher;
    color?: Color;
    _debug: boolean;
    scope: Scope;
    protected events: EventBucket;
    protected _domH: HTMLElement | null;
    protected _domSL: HTMLElement | null;
    protected _domA: HTMLElement | null;
    protected _domEdit: HTMLInputElement | null;
    protected _domSample: HTMLElement | null;
    protected _domOkay: HTMLElement | null;
    protected _domCancel: HTMLElement | null;
    constructor();
    protected connectedCallback(): void;
    protected requiredAttributes(): string[];
    protected beforeBind(): Promise<void>;
    protected afterTemplate(template: string | HTMLElement | null): Promise<any>;
    protected onChange(color?: Color): void;
    protected onDone(color?: Color): void;
    protected template(): Promise<string | null>;
    protected parsedAttributeChangedCallback(attributeName: string, oldValue: any, newValue: any, namespace: string | null): void;
    protected setColor: (...params: any[]) => Promise<any>;
    protected _setColor(color: string, flags?: any): void;
    protected setElements(): void;
    protected disconnectedCallback(): void;
    protected bindEvents(): void;
    protected setHSLA(h?: number | null, s?: number | null, l?: number | null, a?: number | null, flags?: any): void;
    protected updateUI: (...params: any[]) => Promise<any>;
    protected _updateUI(flags?: any): void;
}
export {};
