import { EventEmitter } from '../../stencil-public-runtime';
/**
 * @slot action - Content to be displayed in the label area, typically for help icons or links
 */
export declare class PdsSelect {
    private selectEl;
    private slotContainer;
    private internals?;
    private _type;
    el: HTMLPdsSelectElement;
    /**
     * Specifies if and how the browser provides `autocomplete` assistance for the field.
     */
    autocomplete: string;
    /**
     * A unique identifier used for the underlying component `id` attribute.
     */
    componentId: string;
    /**
     * Indicates whether or not the select field is disabled.
     * @defaultValue false
     */
    disabled: boolean;
    /**
     * Displays error message text describing an invalid state.
     */
    errorMessage: string;
    /**
     * Visually hides the label text for instances where only the select should be displayed. Label remains accessible to assistive technology such as screen readers.
     * Note: When true, the action slot is also hidden to maintain a minimal UI.
     */
    hideLabel: boolean;
    /**
     * Displays helper message text below select.
     */
    helperMessage: string;
    /**
     * Determines whether or not the select is invalid.
     */
    invalid?: boolean;
    /**
     * Text to be displayed as the select label.
     */
    label?: string;
    /**
     * Indicates whether multiple options can be selected.
     * @defaultValue false
     */
    multiple: boolean;
    /**
     * Specifies the name. Submitted with the form name/value pair.
     */
    name: string;
    /**
     * Indicates whether or not the select field is required.
     * @defaultValue false
     */
    required: boolean;
    /**
     * Applies highlight styling to the select field.
     */
    highlight?: boolean;
    /**
     * The value(s) of the selected option(s).
     *
     */
    value?: string | string[];
    /**
     * Emitted when the select value changes.
     */
    pdsSelectChange: EventEmitter<InputEvent>;
    /**
     * Emitted when the select loses focus.
     */
    pdsBlur: EventEmitter<FocusEvent>;
    /**
     * Emitted when the select gains focus.
     */
    pdsFocus: EventEmitter<FocusEvent>;
    /**
     * Emitted when a key is pressed down in the select.
     */
    pdsKeyDown: EventEmitter<KeyboardEvent>;
    /**
     * Handles the change in the value of the select component.
     * This method is called whenever the value of the select component changes.
     * It updates the selected option accordingly.
     */
    valueChanged(): void;
    /**
     * Updates the type property when multiple changes to match native select behavior.
     */
    multipleChanged(): void;
    private updateType;
    connectedCallback(): void;
    componentWillLoad(): void;
    componentDidLoad(): void;
    /**
     * Updates the selected option in the select element based on the current value.
     *
     * This method iterates through all the options of the select element and sets the
     * 'selected' attribute on the option that matches the current value. If an option
     * does not match the current value, the 'selected' attribute is removed.
     *
     * @private
     * @returns {void}
     */
    private updateSelectedOption;
    /**
     * Emits an event on input change.
    */
    private onSelectUpdate;
    private onBlur;
    private onFocus;
    private onKeyDown;
    /**
     * Handles the change event for the slot element.
     * This method is triggered when the slot content changes.
     * It updates the inner HTML of the select element by cloning and appending
     * the assigned <option> elements from the slot.
     */
    private handleSlotChange;
    private getHelperMessage;
    private getErrorMessage;
    private renderMessages;
    private classNames;
    private renderAction;
    /**
     * Updates the form value using ElementInternals API
     */
    private updateFormValue;
    /**
     * Form Associated Custom Elements API: Called when the form is reset
     */
    formResetCallback(): void;
    /**
     * Form Associated Custom Elements API: Called when the form is disabled
     */
    formDisabledCallback(disabled: boolean): void;
    /**
     * Form Associated Custom Elements API: Called to restore form state
     */
    formStateRestoreCallback(state: string | FormData | null): void;
    render(): any;
}
