/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { IKeyboardEvent } from "../../keyboardEvent.mjs";
import { IMouseEvent } from "../../mouseEvent.mjs";
import { IToggleStyles, Toggle } from "../toggle/toggle.mjs";
import { IContextViewProvider } from "../contextview/contextview.mjs";
import { CaseSensitiveToggle, RegexToggle, WholeWordsToggle } from "./findInputToggles.mjs";
import { HistoryInputBox, IInputBoxStyles, IInputValidator, IMessage as InputBoxMessage } from "../inputbox/inputBox.mjs";
import { Widget } from "../widget.mjs";
import { Event } from "../../../common/event.mjs";
import "../../../../css!./findInput.mjs";
export interface IFindInputOptions {
    readonly placeholder?: string;
    readonly width?: number;
    readonly validation?: IInputValidator;
    readonly label: string;
    readonly flexibleHeight?: boolean;
    readonly flexibleWidth?: boolean;
    readonly flexibleMaxHeight?: number;
    readonly showCommonFindToggles?: boolean;
    readonly appendCaseSensitiveLabel?: string;
    readonly appendWholeWordsLabel?: string;
    readonly appendRegexLabel?: string;
    readonly history?: string[];
    readonly additionalToggles?: Toggle[];
    readonly showHistoryHint?: () => boolean;
    readonly toggleStyles: IToggleStyles;
    readonly inputBoxStyles: IInputBoxStyles;
}
export declare class FindInput extends Widget {
    static readonly OPTION_CHANGE: string;
    private placeholder;
    private validation?;
    private label;
    private readonly showCommonFindToggles;
    private fixFocusOnOptionClickEnabled;
    private imeSessionInProgress;
    private additionalTogglesDisposables;
    protected readonly controls: HTMLDivElement;
    protected readonly regex?: RegexToggle;
    protected readonly wholeWords?: WholeWordsToggle;
    protected readonly caseSensitive?: CaseSensitiveToggle;
    protected additionalToggles: Toggle[];
    readonly domNode: HTMLElement;
    readonly inputBox: HistoryInputBox;
    private readonly _onDidOptionChange;
    readonly onDidOptionChange: Event<boolean>;
    private readonly _onKeyDown;
    readonly onKeyDown: Event<IKeyboardEvent>;
    private readonly _onMouseDown;
    readonly onMouseDown: Event<IMouseEvent>;
    private readonly _onInput;
    readonly onInput: Event<void>;
    private readonly _onKeyUp;
    readonly onKeyUp: Event<IKeyboardEvent>;
    private _onCaseSensitiveKeyDown;
    readonly onCaseSensitiveKeyDown: Event<IKeyboardEvent>;
    private _onRegexKeyDown;
    readonly onRegexKeyDown: Event<IKeyboardEvent>;
    constructor(parent: HTMLElement | null, contextViewProvider: IContextViewProvider | undefined, options: IFindInputOptions);
    get isImeSessionInProgress(): boolean;
    get onDidChange(): Event<string>;
    enable(): void;
    disable(): void;
    setFocusInputOnOptionClick(value: boolean): void;
    setEnabled(enabled: boolean): void;
    setAdditionalToggles(toggles: Toggle[] | undefined): void;
    clear(): void;
    getValue(): string;
    setValue(value: string): void;
    onSearchSubmit(): void;
    select(): void;
    focus(): void;
    getCaseSensitive(): boolean;
    setCaseSensitive(value: boolean): void;
    getWholeWords(): boolean;
    setWholeWords(value: boolean): void;
    getRegex(): boolean;
    setRegex(value: boolean): void;
    focusOnCaseSensitive(): void;
    focusOnRegex(): void;
    private _lastHighlightFindOptions;
    highlightFindOptions(): void;
    validate(): void;
    showMessage(message: InputBoxMessage): void;
    clearMessage(): void;
    private clearValidation;
}
