import { EventEmitter } from '../../stencil-public-runtime';
import { IconType } from '../../interface.js';
export declare class CpslSelect {
    el: HTMLCpslSelectElement;
    private popoverEl;
    private inputId;
    anchorEl: HTMLElement;
    hasFocus: boolean;
    popoverOpen: boolean;
    hasSelectedItem: boolean;
    /**
     * ID of element to anchor popover to.
     */
    anchorElId?: string;
    /**
     * If `true` the popover container will use the width of the content, else it will be set to the width of the trigger.
     * Default is `false`
     */
    autoWidth?: boolean;
    /**
     * If `true`, the user cannot interact with the input.
     */
    disabled: boolean;
    /**
     * Set the max height of the dropdown.
     */
    dropdownMaxHeight?: number;
    /**
     * Error text to show below the input. If this is provided the input will enter an error state.
     */
    errorText?: string;
    /**
     * Format value for display when selected.
     */
    formatValue?: (value: string | string[]) => string;
    /**
     * Helper text to show below the input. If `"errorText"` is provided that will take precedence.
     */
    helperText?: string;
    /**
     * ID of the element, must be unique for the popover trigger.
     */
    id: string;
    /**
     * The name of the icon to use for the end icon.
     * Default: `chevronUp`
     */
    icon?: IconType;
    /**
     * The label for the input.
     */
    label?: string;
    /**
     * If `true`, the user can select more than one value.
     */
    multiple?: boolean;
    /**
     * Whether or not to show the rotation animation for the end icon.
     */
    noIconAnimation?: boolean;
    /**
     * Placeholder to display if `selectedValue` is empty.
     */
    placeholder?: string;
    /**
     * If `true`, the user must fill in a value before submitting a form.
     */
    required: boolean;
    /**
     * Value of the selected item.
     */
    selectedValue?: string | string[];
    /**
     * Will show the formatted selected item (passed in the `selected-item` slot) in the select rather than the item value.
     */
    showFormattedSelectedItem?: boolean;
    /**
     * If `true`, the label will display an "optional" tag.
     */
    showOptionalLabel: boolean;
    /**
     * If `true`, the dropdown will contain a search field.
     */
    showSearch: boolean;
    /**
     * Placeholder for the search field.
     */
    searchPlaceholder?: string;
    /**
     * The color of the selected item or placeholder text.
     * Options are: `"primary"`, `"secondary", `"tertiary", `"subtle", `"inverted", `"error".
     * Default is: `"primary"`.
     */
    selectedItemColor?: 'primary' | 'secondary' | 'tertiary' | 'subtle' | 'inverted' | 'error' | 'contrast';
    /**
     * The variant of the selected item or placeholder text.
     * Options are: `"body2XS"`, `"bodyXS", `"bodyS", `"bodyM", `"bodyL", `"bodyXL", `"headingXS", `"headingS", `"headingM", `"headingL", `"headingXL", `"heading2XL".
     * Default is: `"bodyM"`.
     */
    selectedItemVariant?: 'body2XS' | 'bodyXS' | 'bodyS' | 'bodyM' | 'bodyL' | 'bodyXL' | 'headingXS' | 'headingS' | 'headingM' | 'headingL' | 'headingXL' | 'heading2XL';
    /**
     * The weight of the selected item or placeholder text.
     * Options are: `"regular"`, `"medium", `"semiBold", `"bold".
     * Default is: `"regular"`.
     */
    selectedItemWeight?: 'regular' | 'medium' | 'semiBold' | 'bold';
    /**
     * Emitted when the input loses focus.
     */
    cpslBlur: EventEmitter<FocusEvent>;
    /**
     * Emitted when the input has focus.
     */
    cpslFocus: EventEmitter<FocusEvent>;
    /**
     * Emitted when the value changes.
     */
    cpslSelectValueChange: EventEmitter<string>;
    /**
     * Emitted when the search value changes.
     */
    cpslSearchChange: EventEmitter<string>;
    onValueChange(): void;
    handleValueChange(): void;
    selectItemClickHandler(event: CustomEvent<string>): void;
    onPopoverOpen(): void;
    onPopoverClose(): void;
    componentDidLoad(): void;
    private onBlur;
    private onFocus;
    private handleEnterPress;
    private selectItem;
    private handleClickOutside;
    private handleClick;
    render(): any;
}
