import { GdsFormControlElement } from '../form/form-control';
declare class Select<ValueT = string> extends GdsFormControlElement<ValueT | ValueT[]> {
    #private;
    static styles: (import("lit").CSSResult | import("lit").CSSResult[])[];
    /**
     * The supporting text displayed between the label and the field.
     * This text provides additional context or information to the user.
     */
    supportingText: string;
    /**
     * Whether the supporting text should be displayed or not.
     */
    showExtendedSupportingText: boolean;
    /**
     * Controls the font-size of texts and height of the field.
     */
    size: 'large' | 'small';
    /**
     * Hides the header and the footer, while still keeping the accessible label
     *
     * Always set the `label` attribute, and if you need to hide it, add this attribute and keep `label` set.
     */
    plain: boolean;
    /**
     * Reference to the native select element.
     */
    selectElement?: HTMLSelectElement;
    /**
     * The value of the select element.
     * This property can be either a single value or an array of values, depending on the multiple attribute of the select element.
     *
     * Only use this property, and not the value property of the wrapped select element.
     */
    get value(): ValueT | undefined;
    set value(value: ValueT | undefined);
    /**
     * Returns the display value for the select component.
     * For single-select mode, this is the selected option text.
     * For multi-select mode, this is a comma-separated list of selected option texts.
     */
    get displayValue(): string;
    /**
     * Wheter the select element is in multiple selection mode.
     */
    get multiple(): boolean;
    private _elSelectContainer?;
    connectedCallback(): void;
    focus(options?: FocusOptions): void;
    render(): any;
    private _captureDOM;
    /**
     * Handles form reset events by selecting the first option.
     */
    formResetCallback(): void;
    _getValidityAnchor(): HTMLElement;
    private _handleValueChange;
}
declare const GdsSelect_base: (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").LayoutChildProps) & (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").SizeXProps) & (new (...args: any[]) => import("../../utils/mixins/declarative-layout-mixins").MarginProps) & typeof Select;
/**
 * @element gds-select
 *
 * `gds-select` is a wrapper component for the native select element.
 *
 * Usage Example:
 * ```html
 * <gds-select label="Choose an option" supporting-text="Select one item">
 *   <select>
 *     <option value="1">Option 1</option>
 *     <option value="2">Option 2</option>
 *   </select>
 * </gds-select>
 * ```
 *
 * The wrapped select element will be cloned into the component's shadow DOM. Therefore, event listeners should only be added on the host
 * element, and not on the enclosed select element. Also, state should also be handled only through the host.
 * Setting value or selected props on the select element will not work as expected.
 *
 * @event {CustomEvent} change - Fired when the selection changes with detail: { value: string }
 * @event {CustomEvent} input - Fired on input with detail: { value: string }
 *
 * @slot - Default slot for the native select element
 * @slot lead - Slot for leading content (e.g., icons)
 */
export declare class GdsSelect extends GdsSelect_base {
}
export {};
