/**
 * Copyright IBM Corp. 2019, 2026
 *
 * This source code is licensed under the Apache-2.0 license found in the
 * LICENSE file in the root directory of this source tree.
 */
import { LitElement } from 'lit';
import { SEARCH_SIZE } from './defs';
export { SEARCH_SIZE };
declare const CDSSearch_base: {
    new (...args: any[]): {
        _handles: Set<import("../../globals/internal/handle").default>;
        connectedCallback(): void;
        disconnectedCallback(): void;
    };
    _hostListeners: {
        [listenerName: string]: {
            [type: string]: {
                options?: boolean | AddEventListenerOptions;
            };
        };
    };
} & (new (...args: any[]) => {
    focus(): void;
}) & (new (...args: any[]) => {
    _hFormdata: import("../../globals/internal/handle").default | null;
    _handleFormdata(event: Event): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
}) & typeof LitElement;
/**
 * Search box.
 *
 * @element cds-custom-search
 * @csspart search-icon The search icon.
 * @csspart label-text The label text.
 * @csspart input The input box.
 * @csspart close-button The close button.
 * @csspart close-icon The close icon.
 * @fires cds-custom-search-input - The custom event fired after the search content is changed upon a user gesture.
 */
declare class CDSSearch extends CDSSearch_base {
    /**
     * Handles `input` event on the `<input>` in the shadow DOM.
     */
    private _handleInput;
    /**
     * Handles `click` event on the button to clear search box content.
     */
    private _handleClearInputButtonClick;
    /**
     * Expand only when the magnifier icon is clicked
     */
    private _handleExpand;
    private _expandAndFocus;
    /**
     * Handle keyboard interactions:
     * - Enter/Space: expand when collapsed and focus the input
     * - Esc: if input has text: clear it | if empty: collapse and move focus back to magnifier
     */
    private _handleKeys;
    /**
     * Handles `focusout` event on the component to be closed after being expanded
     * Will not close if there is a value typed within.
     */
    private _handleClose;
    /**
     * Handler for @slotchange, will only be ran if user sets an element under the "icon" slot.
     *
     * @private
     */
    private _handleSlotChange;
    _handleFormdata(event: FormDataEvent): void;
    /**
     * Move focus back to the magnifier element.
     * Adds tabindex="-1" if it is not focusable yet.
     */
    private _focusMagnifier;
    /**
     * Specify an optional value for the autocomplete property on the underlying <input>,
     * defaults to "off"
     */
    autoComplete: string;
    /**
     * Specify a label to be read by screen readers on the "close" button
     */
    closeButtonLabelText: string;
    /**
     * `true` if the search box should be disabled.
     */
    disabled: boolean;
    /**
     * `true` if the search bar can be expandable
     */
    expandable: boolean;
    /**
     * `true` if the expandable search has been expanded
     */
    expanded: boolean;
    hasCustomIcon: boolean;
    /**
     * The label text.
     */
    labelText: string;
    /**
     * The form name in `FormData`.
     */
    name: string;
    /**
     * Specify the role for the underlying <input>, defaults to searchbox
     */
    role: string;
    /**
     * The placeholder text.
     */
    placeholder: string;
    /**
     * The search box size.
     */
    size?: SEARCH_SIZE;
    /**
     * The `<input>` name.
     */
    type: string;
    /**
     * The value.
     */
    value: string;
    render(): import("lit-html").TemplateResult<1>;
    /**
     * The name of the custom event fired after the search content is changed upon a user gesture.
     */
    static get eventInput(): string;
    static shadowRootOptions: {
        delegatesFocus: boolean;
        clonable?: boolean;
        customElementRegistry?: CustomElementRegistry;
        mode: ShadowRootMode;
        serializable?: boolean;
        slotAssignment?: SlotAssignmentMode;
    };
    static styles: any;
}
export default CDSSearch;
//# sourceMappingURL=search.d.ts.map