/**
 *
 * carbon-angular v0.0.0 | select.component.d.ts
 *
 * Copyright 2014, 2025 IBM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0

 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


import { AfterViewInit, ElementRef, EventEmitter, TemplateRef } from "@angular/core";
import { ControlValueAccessor } from "@angular/forms";
import * as i0 from "@angular/core";
/**
 * `cds-select` provides a styled `select` component. Get started with importing the module:
 *
 * ```typescript
 * import { SelectModule } from 'carbon-components-angular';
 * ```
 *
 * ```html
 * <cds-select [(ngModel)]="model">
 * 	<option value="default" disabled selected hidden>Choose an option</option>
 * 	<option value="option1">Option 1</option>
 *	<option value="option2">Option 2</option>
 * 	<option value="option3">Option 3</option>
 * </cds-select>
 *	```
 *
 * [See demo](../../?path=/story/components-select--basic)
 */
export declare class Select implements ControlValueAccessor, AfterViewInit {
    set value(v: any);
    get value(): any;
    /**
     * Tracks the total number of selects instantiated. Used to generate unique IDs
     */
    static selectCount: number;
    /**
     * `inline` or `default` select displays
     */
    display: "inline" | "default";
    /**
     * Label for the select. Appears above the input.
     */
    label: string | TemplateRef<any>;
    /**
     * Optional helper text that appears under the label.
     */
    helperText: string | TemplateRef<any>;
    /**
     * Sets the invalid text.
     */
    invalidText: string | TemplateRef<any>;
    /**
      * Set to `true` to show a warning (contents set by warningText)
      */
    warn: boolean;
    /**
     * Sets the warning text
     */
    warnText: string | TemplateRef<any>;
    /**
     * Sets the unique ID. Defaults to `select-${total count of selects instantiated}`
     */
    id: string;
    /**
     * Number input field render size
     */
    size: "sm" | "md" | "lg";
    /**
     * Set to true to disable component.
     */
    disabled: boolean;
    /**
     * Set to true for a loading select.
     */
    skeleton: boolean;
    /**
     * Set to `true` for an invalid select component.
     */
    invalid: boolean;
    /**
     * Set to `true` for readonly state.
     */
    readonly: boolean;
    /**
     * @deprecated since v5 - Use `cdsLayer` directive instead
     * `light` or `dark` select theme
     */
    theme: "light" | "dark";
    ariaLabel: string;
    /**
     * Experimental: enable fluid state
     */
    fluid: boolean;
    valueChange: EventEmitter<any>;
    select: ElementRef;
    focused: boolean;
    protected _value: any;
    ngAfterViewInit(): void;
    /**
     * Receives a value from the model.
     */
    writeValue(obj: any): void;
    /**
     * Registers a listener that notifies the model when the control updates
     */
    registerOnChange(fn: any): void;
    /**
     * Registers a listener that notifies the model when the control is blurred
     */
    registerOnTouched(fn: any): void;
    /**
     * Sets the disabled state through the model
     */
    setDisabledState(isDisabled: boolean): void;
    /**
     * Handles the change event from the `select`.
     * Sends events to the change handler and emits a `selected` event.
     */
    onChange(event: any): void;
    /**
     * Listens for the host blurring, and notifies the model
     */
    focusOut(): void;
    isTemplate(value: any): boolean;
    onMouseDown(event: MouseEvent): void;
    onKeyDown(event: KeyboardEvent): void;
    handleFocus(event: FocusEvent): void;
    /**
     * placeholder declarations. Replaced by the functions provided to `registerOnChange` and `registerOnTouched`
     */
    protected onChangeHandler: (_: any) => void;
    protected onTouchedHandler: () => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<Select, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<Select, "cds-select, ibm-select", never, { "value": "value"; "display": "display"; "label": "label"; "helperText": "helperText"; "invalidText": "invalidText"; "warn": "warn"; "warnText": "warnText"; "id": "id"; "size": "size"; "disabled": "disabled"; "skeleton": "skeleton"; "invalid": "invalid"; "readonly": "readonly"; "theme": "theme"; "ariaLabel": "ariaLabel"; "fluid": "fluid"; }, { "valueChange": "valueChange"; }, never, ["*"], false>;
}
