/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { StandardKeyboardEvent } from "../../../browser/keyboardEvent.mjs";
import { IListStyles } from "../../../browser/ui/list/listWidget.mjs";
import { Event } from "../../../common/event.mjs";
import { IQuickInputOptions } from "./quickInput.mjs";
import { QuickPickItem, IQuickPickItem, IQuickPickItemButtonEvent, IQuickPickSeparatorButtonEvent } from "../common/quickInput.mjs";
import "../../../../css!./media/quickInput.mjs";
export declare enum QuickInputListFocus {
    First = 1,
    Second = 2,
    Last = 3,
    Next = 4,
    Previous = 5,
    NextPage = 6,
    PreviousPage = 7
}
export declare class QuickInputList {
    private parent;
    readonly id: string;
    private container;
    private list;
    private inputElements;
    private elements;
    private elementsToIndexes;
    matchOnDescription: boolean;
    matchOnDetail: boolean;
    matchOnLabel: boolean;
    matchOnLabelMode: 'fuzzy' | 'contiguous';
    matchOnMeta: boolean;
    sortByLabel: boolean;
    private readonly _onChangedAllVisibleChecked;
    onChangedAllVisibleChecked: Event<boolean>;
    private readonly _onChangedCheckedCount;
    onChangedCheckedCount: Event<number>;
    private readonly _onChangedVisibleCount;
    onChangedVisibleCount: Event<number>;
    private readonly _onChangedCheckedElements;
    onChangedCheckedElements: Event<IQuickPickItem[]>;
    private readonly _onButtonTriggered;
    onButtonTriggered: Event<IQuickPickItemButtonEvent<IQuickPickItem>>;
    private readonly _onSeparatorButtonTriggered;
    onSeparatorButtonTriggered: Event<IQuickPickSeparatorButtonEvent>;
    private readonly _onKeyDown;
    onKeyDown: Event<StandardKeyboardEvent>;
    private readonly _onLeave;
    onLeave: Event<void>;
    private _fireCheckedEvents;
    private elementDisposables;
    private disposables;
    constructor(parent: HTMLElement, id: string, options: IQuickInputOptions);
    get onDidChangeFocus(): Event<(IQuickPickItem | undefined)[]>;
    get onDidChangeSelection(): Event<{
        items: (IQuickPickItem | undefined)[];
        event: UIEvent | undefined;
    }>;
    get scrollTop(): number;
    set scrollTop(scrollTop: number);
    getAllVisibleChecked(): boolean;
    private allVisibleChecked;
    getCheckedCount(): number;
    getVisibleCount(): number;
    setAllVisibleChecked(checked: boolean): void;
    setElements(inputElements: Array<QuickPickItem>): void;
    getElementsCount(): number;
    getFocusedElements(): (IQuickPickItem | undefined)[];
    setFocusedElements(items: IQuickPickItem[]): void;
    getActiveDescendant(): string | null;
    getSelectedElements(): (IQuickPickItem | undefined)[];
    setSelectedElements(items: IQuickPickItem[]): void;
    getCheckedElements(): IQuickPickItem[];
    setCheckedElements(items: IQuickPickItem[]): void;
    set enabled(value: boolean);
    focus(what: QuickInputListFocus): void;
    clearFocus(): void;
    domFocus(): void;
    layout(maxHeight?: number): void;
    filter(query: string): boolean;
    toggleCheckbox(): void;
    display(display: boolean): void;
    isDisplayed(): boolean;
    dispose(): void;
    private fireCheckedEvents;
    private fireButtonTriggered;
    private fireSeparatorButtonTriggered;
    style(styles: IListStyles): void;
}
