import { ShadowlessElement } from '@blockeditor/lit';
export type SelectTag = {
    id: string;
    color: string;
    value: string;
    parentId?: string;
};
declare const MultiTagSelect_base: typeof ShadowlessElement & import("@blockeditor/global/utils").Constructor<import("@blockeditor/lit").DisposableClass>;
export declare class MultiTagSelect extends MultiTagSelect_base {
    static styles: import("lit").CSSResult;
    mode: 'multi' | 'single';
    options: SelectTag[];
    onOptionsChange: (options: SelectTag[]) => void;
    private filteredOptions;
    value: string[];
    onChange: (value: string[]) => void;
    editComplete: () => void;
    newTags: (tags: SelectTag[]) => void;
    deleteTag: (id: string) => void;
    changeTag: (tag: SelectTag) => void;
    private _selectInput;
    private text;
    private selectedIndex;
    private _currentColor;
    private get color();
    private clearColor;
    get isSingleMode(): boolean;
    protected firstUpdated(): void;
    private _onDeleteSelected;
    private _onInput;
    private get selectedTag();
    private optionsIdMap;
    private getTagGroup;
    private _onInputKeydown;
    private setSelectedOption;
    private _onSelect;
    private _createOption;
    private _clickItemOption;
    private getTagFullName;
    private getGroupInfoByFullName;
    private _filterOptions;
    render(): import("lit").TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'affine-multi-tag-select': MultiTagSelect;
    }
}
export declare const popTagSelect: (target: HTMLElement, ops: {
    mode?: "multi" | "single" | undefined;
    value: string[];
    onChange: (value: string[]) => void;
    options: SelectTag[];
    onOptionsChange: (options: SelectTag[]) => void;
    onComplete?: (() => void) | undefined;
    minWidth?: number | undefined;
}) => () => void;
export {};
//# sourceMappingURL=multi-tag-select.d.ts.map