/**
 * Copyright IBM Corp. 2020, 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 { INPUT_SIZE } from '../text-input/text-input';
declare const CDSSelect_base: (new (...args: any[]) => {
    _hFormdata: import("../../globals/internal/handle").default | null;
    _handleFormdata(event: Event): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
}) & typeof LitElement;
/**
 * Select box.
 *
 * @element cds-custom-select
 * @fires cds-custom-select-selected
 *   The name of the custom event fired after an item is selected.
 * @slot helper-text - The helper text.
 * @slot label-text - The label text.
 * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.
 */
declare class CDSSelect extends CDSSelect_base {
    /**
     * `true` if there is an AI Label.
     */
    protected _hasAILabel: boolean;
    /**
     * The mutation observer DOM mutation.
     */
    private _observerMutation;
    /**
     * The `value` for placeholder `<option>`.
     */
    private _placeholderItemValue;
    /**
     * The select box.
     */
    private _selectNode;
    /**
     * Select all <option> nodes with `selected` attribute
     */
    private _selectedOptionNodes;
    /**
     * Specify whether the textarea is fluid or not
     */
    isFluid: boolean;
    /**
     * Handles `oninput` event on the `<input>`.
     *
     * @param event The event.
     * @param event.target The event target.
     */
    private _handleInput;
    /**
     * Handles DOM mutation of `<cds-custom-select-item>` or `<cds-custom-select-item-group>` put in `<cds-custom-select>`, or their changes.
     * In such event, `<cds-custom-select>` creates the corresponding `<option>` and `<optgroup>`, respectively, into shadow DOM,
     * with `._renderItems()`.
     * Doing so allows the shadow DOM style of `<cds-custom-select>` to control the style of the `<option>` and `<optgroup>`,
     * notably the disabled ones.
     */
    private _handleMutation;
    /**
     * @param element The parent element containing pseudo `<optgroup>`/`<option>`.
     * @returns The template containing child `<optgroup>`/`<option>` that will be rendered to shadow DOM.
     */
    private _renderItems;
    _handleFormdata(event: FormDataEvent): void;
    /**
     * Handles `slotchange` event.
     */
    protected _handleAILabelSlotChange({ target }: Event): void;
    /**
     * The count of child `<option>`s.
     * If the placeholder is in effect, it includes the `<option>` for the placeholder.
     */
    get length(): number;
    /**
     * The child `<option>`s.
     */
    get options(): HTMLOptionsCollection;
    /**
     * This form control's type.
     */
    get type(): "select-one" | "select-multiple";
    /**
     * Sets the select to be focussed automatically on page load. Defaults to false
     */
    autofocus: boolean;
    /**
     * Controls the disabled state of the select
     */
    disabled: boolean;
    /**
     * The helper text.
     */
    helperText: string;
    /**
     * Specify whether the label should be hidden, or not
     */
    hideLabel: boolean;
    /**
     * ID to link the `label` and `select`
     */
    id: string;
    /**
     * Specify if the currently value is invalid.
     */
    invalid: boolean;
    /**
     * Message which is displayed if the value is invalid.
     */
    invalidText: string;
    /**
     * Specify if the currently value is warn.
     */
    warn: boolean;
    /**
     * Message which is displayed if the value is warn.
     */
    warnText: string;
    /**
     * The label text.
     */
    labelText: string;
    /**
     * Specify if you want to disable the default label styling
     */
    labelStylesDisable: boolean;
    /**
     * Specify whether you want the inline version of this control
     */
    inline: boolean;
    /**
     * `true` to enable multiple selection.
     */
    get multiple(): boolean;
    /**
     * Name for the select in the `FormData`
     */
    name: string;
    /**
     * Pattern to validate the select against for HTML validity checking
     */
    pattern: string;
    /**
     * Value to display when the select has an empty `value`
     */
    placeholder: string;
    /**
     * Controls the readonly state of the select
     */
    readonly: boolean;
    /**
     * Boolean property to set the required status
     */
    required: boolean;
    /**
     * The special validity message for `required`.
     */
    requiredValidityMessage: string;
    /**
     * The selected index.
     */
    get selectedIndex(): number;
    set selectedIndex(value: number);
    /**
     * The input box size.
     */
    size?: INPUT_SIZE;
    /**
     * The value of the text area.
     */
    value: string;
    connectedCallback(): void;
    disconnectedCallback(): void;
    updated(changedProperties: any): void;
    render(): import("lit-html").TemplateResult<1>;
    /**
     * A selector selecting child pseudo `<optgroup>`/`<option>`.
     */
    static get selectorItem(): string;
    /**
     * A selector selecting child pseudo `<option>`.
     */
    static get selectorLeafItem(): string;
    /**
     * A selector that will return the slug item.
     *
     * remove in v12
     */
    static get slugItem(): string;
    /**
     * A selector that will return the AI Label item.
     */
    static get aiLabelItem(): string;
    /**
     * The name of the custom event fired after item is selected.
     */
    static get eventSelect(): string;
    static shadowRootOptions: {
        delegatesFocus: boolean;
        clonable?: boolean;
        customElementRegistry?: CustomElementRegistry;
        mode: ShadowRootMode;
        serializable?: boolean;
        slotAssignment?: SlotAssignmentMode;
    };
    static styles: any;
}
export default CDSSelect;
//# sourceMappingURL=select.d.ts.map