import '//resources/cr_components/searchbox/searchbox_dropdown.js';
import '//resources/cr_components/searchbox/searchbox_input.js';
import '//resources/cr_components/searchbox/searchbox_compose_button.js';
import './omnibox_popup_contextual_entrypoint.js';
import type { ComposeClickEventDetail, SearchboxComposeButtonElement } from '//resources/cr_components/searchbox/searchbox_compose_button.js';
import type { SearchboxDropdownElement } from '//resources/cr_components/searchbox/searchbox_dropdown.js';
import type { SearchboxInputElement } from '//resources/cr_components/searchbox/searchbox_input.js';
import type { SearchboxMixinInterface } from '//resources/cr_components/searchbox/searchbox_mixin.js';
import type { PropertyValues } from '//resources/lit/v3_0/lit.rollup.js';
import { CrLitElement } from '//resources/lit/v3_0/lit.rollup.js';
import type { PageHandlerInterface as SearchboxPageHandlerInterface } from '//resources/mojo/components/omnibox/browser/searchbox.mojom-webui.js';
import type { OmniboxPopupContextualEntrypointButtonElement } from './omnibox_popup_contextual_entrypoint_button.js';
export interface AimButtonConfig {
    text: string;
    title: string;
    a11yLabel: string;
    icon: string;
}
export interface OmniboxPopupSearchboxElement {
    $: {
        composeButton: SearchboxComposeButtonElement;
        input: SearchboxInputElement;
        inputWrapper: HTMLElement;
        matches: SearchboxDropdownElement;
    };
}
declare const OmniboxPopupSearchboxElementBase: typeof CrLitElement & (new (...args: any[]) => import("//resources/cr_elements/web_ui_listener_mixin_lit.js").WebUiListenerMixinLitInterface) & (new (...args: any[]) => import("//resources/cr_elements/i18n_mixin_lit.js").I18nMixinLitInterface) & (new (...args: any[]) => SearchboxMixinInterface);
export declare class OmniboxPopupSearchboxElement extends OmniboxPopupSearchboxElementBase implements SearchboxMixinInterface {
    static get is(): string;
    static get styles(): import("//resources/lit/v3_0/lit.rollup.js").CSSResultGroup;
    render(): import("//resources/lit/v3_0/lit.rollup.js").TemplateResult<1>;
    static get properties(): {
        omniboxPopupDebugEnabled_: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        searchboxChromeRefreshTheming: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        searchboxSteadyStateShadow: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        searchboxIcon_: {
            type: StringConstructor;
        };
        searchboxVoiceSearchEnabled_: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        searchboxLensSearchEnabled_: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        useWebkitSearchIcons_: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        isTouchUi_: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        multiLineEnabled: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        searchboxDynamicColorScheme_: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        hasUserInput_: {
            type: BooleanConstructor;
        };
        searchboxDynamicAnimation_: {
            type: BooleanConstructor;
        };
        aimButtonVisible_: {
            type: BooleanConstructor;
        };
        aimButtonConfig_: {
            type: ObjectConstructor;
        };
        /**
         * Whether the secondary side can be shown based on the feature state and
         * the width available to the dropdown.
         */
        canShowSecondarySide: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        /**
         * Whether the secondary side is currently available to be shown.
         */
        hasSecondarySide: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        /**
         * Whether the input has selection or not. Used when the widget loses
         * activation but should still show the selection,
         */
        hasInputSelection_: {
            type: BooleanConstructor;
            reflect: boolean;
        };
        /**
         * Whether the input has focus or not. Used when the widget loses
         * activation but should still show the focus ring.
         */
        isLogicallyFocused_: {
            type: BooleanConstructor;
            reflect: boolean;
        };
    };
    accessor canShowSecondarySide: boolean;
    accessor hasSecondarySide: boolean;
    accessor isLogicallyFocused_: boolean;
    accessor hasInputSelection_: boolean;
    accessor searchboxChromeRefreshTheming: boolean;
    accessor searchboxSteadyStateShadow: boolean;
    accessor omniboxPopupDebugEnabled_: boolean;
    protected accessor searchboxIcon_: string;
    protected accessor searchboxVoiceSearchEnabled_: boolean;
    protected accessor searchboxLensSearchEnabled_: boolean;
    protected accessor useWebkitSearchIcons_: boolean;
    accessor multiLineEnabled: boolean;
    protected accessor isTouchUi_: boolean;
    protected accessor searchboxDynamicColorScheme_: boolean;
    protected accessor searchboxDynamicAnimation_: boolean;
    protected accessor hasUserInput_: boolean;
    protected accessor aimButtonVisible_: boolean;
    protected accessor aimButtonConfig_: AimButtonConfig;
    get showContextEntrypoint(): boolean;
    private eventTracker_;
    private searchboxPageHandler_;
    private searchboxCallbackRouter_;
    private popupCallbackRouter_;
    private popupPageHandler_;
    private listenerIds_;
    private popupListenerIds_;
    private currentSequenceNum_;
    private userInputInProgress_;
    private isComposing_;
    private fullUrl_;
    private permanentDisplayText_;
    private fullUrlShown_;
    private deferredFocusAction_;
    private selectAllOnMouseRelease_;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    willUpdate(changedProperties: PropertyValues<this>): void;
    getContextualEntrypointButton(): OmniboxPopupContextualEntrypointButtonElement | null;
    firstUpdated(changedProperties: PropertyValues<this>): void;
    updated(changedProperties: PropertyValues<this>): void;
    shouldAppendDotComOnCtrlEnter(): boolean;
    isBackgroundTabNavigation(e: KeyboardEvent | MouseEvent): boolean;
    focusInput(): void;
    getInputElement(): SearchboxInputElement;
    getDropdownElement(): SearchboxDropdownElement;
    getWrapperElement(): HTMLElement;
    pageHandler(): SearchboxPageHandlerInterface;
    /**
     * Clears frontend autocomplete matches and reverts C++ `OmniboxEditModel`.
     * Kept separate from `clearAutocompleteMatches()`, which is called internally
     * by `SearchboxMixin` when selecting suggestions or blurring the input.
     */
    revert(): void;
    updateDropdownVisibility(): void;
    isInputEmpty(): boolean;
    protected shouldShowVoiceLens_(isEnabled: boolean): boolean;
    onInputFocusChanged(e: CustomEvent<{
        value: string;
        isOnFocus: boolean;
    }>): void;
    protected onInputMousedown_(e: MouseEvent): void;
    onInputWrapperKeydown(e: KeyboardEvent): Promise<void>;
    protected onInputPaste_(e: ClipboardEvent): void;
    protected showFullUrlOnDeselect_(): void;
    private isChromeScheme_;
    /**
     * Reports selection changes back to C++.
     */
    private onSelectionChanged_;
    /**
     * Sets the input text and applies selection range synchronously regardless of
     * focus.
     */
    private onSetInputState_;
    /**
     * Called by C++ via `SetFocus` Mojo IPC when the browser refocuses the
     * Omnibox while the popup is already open (or during tab restoration). If the
     * document is visible, focuses and selects all input text immediately.
     * If hidden, defers the action until `visibilitychange`.
     */
    private onSetFocus_;
    /**
     * Resets selection range, blurs input, and clears autocomplete matches when
     * focus is lost to external targets or when clicking outside.
     */
    private handleFocusLost_;
    /**
     * Applies `selection` to `#input`. If a partial sub-range is requested while
     * displaying an elided URL, unelides `fullUrl_` first before selecting.
     */
    private selectRange;
    private maybeShowFullUrl_;
    protected onInputFocusin_(): void;
    /**
     * Executes deferred focus (`FOCUS` / `FOCUS_AND_SELECT`) when the tab
     * transitions from hidden to visible (`document.visibilityState ===
     * 'visible'`).
     */
    private onVisibilityChange_;
    protected onSearchboxInputTextUpdated_(e: CustomEvent<{
        value: string;
        isComposing: boolean;
    }>): void;
    onInputWrapperFocusout(e: FocusEvent): void;
    protected onVoiceSearchClick_(): void;
    protected onLensSearchClick_(): void;
    protected onComposeClick_(e: CustomEvent<ComposeClickEventDetail>): void;
    protected onHasSecondarySideChanged_(e: CustomEvent<{
        value: boolean;
    }>): void;
    private onCanShowSecondarySideChanged_;
    handleKeyNavigation(e: KeyboardEvent): void;
    private handleEscapeKey_;
}
declare global {
    interface HTMLElementTagNameMap {
        'omnibox-popup-searchbox': OmniboxPopupSearchboxElement;
    }
}
export {};
