import type { MaPopover2Props as MaPopoverProps } from '@/components/popover-2/index.vue';
export declare const MaSelectSizes: readonly ["small", "medium", "large"];
export declare const MaSelectOptionCheckboxPositions: readonly ["left", "right", "hidden"];
export declare const MaSelectMultiSelectionInputs: readonly ["checkbox", "toggle"];
export type MaSelectSize = (typeof MaSelectSizes)[number];
export type MaSelectOptionCheckboxPosition = (typeof MaSelectOptionCheckboxPositions)[number];
export type MaSelectMultiSelectionInput = (typeof MaSelectMultiSelectionInputs)[number];
export type MaSelectValue = string | number | string[] | number[];
export type MaSelectOptionValue = string | number;
export interface MaSelectOption {
    label?: string;
    value: MaSelectOptionValue;
    disabled?: boolean;
    [key: string]: unknown;
}
export interface MaSelectProps {
    /**
     * Size of the select input
     * @default small
     */
    size?: MaSelectSize;
    /**
     * Determines if the select component should operate in single or multiple selection mode.
     * @default false
     */
    multiple?: boolean;
    /**
     * Current selected option (v-model)
     */
    value?: MaSelectValue;
    /**
     * Placeholder of select
     */
    placeholder?: string;
    /**
     * Data of the selectOption, manual construction work is no longer needed if this property has been set
     * @default []
     */
    options?: MaSelectOption[];
    /**
     * Show clear button.
     * @default false
     */
    allowClear?: boolean;
    /**
     * Show search input on the dropdown.
     * @default false
     */
    showSearch?: boolean;
    /**
     * The placeholder of the search button.
     * @default Search...
     */
    searchPlaceholder?: string;
    /**
     * The custom prefix icon
     */
    prefixIcon?: string;
    /**
     * className of dropdown menu
     */
    dropdownClassName?: string;
    /**
     * The disabled state of the component
     * @default false
     */
    disabled?: boolean;
    /**
     * The loading state of the component
     * @default false
     */
    loading?: boolean;
    /**
     * Controlled open state of dropdown
     */
    open?: boolean;
    /**
     * Config popup max height
     * @default 256
     */
    listHeight?: number;
    /**
     * Determine whether the dropdown menu and the select input are the same width.
     * When it is false, a specific width must be given for the dropdown! Otherwise virtual scroll does not work
     * @default true
     */
    dropdownMatchSelectWidth?: boolean;
    /**
     * borderless version of the select
     * @default false
     */
    borderless?: boolean;
    /**
     * inline version of the select
     * @default false
     */
    inline?: boolean;
    /**
     * error version of the select
     * @default false
     */
    hasError?: boolean;
    /**
     * hint text of the select
     */
    hint?: string;
    /**
     * popover component props, See the popover component props for details
     */
    dropdownProps?: MaPopoverProps;
    /**
     * checkbox will appear on the right, left or hidden
     * works only multiple mode
     * @default left
     */
    checkboxPosition?: MaSelectOptionCheckboxPosition;
    /**
     * Active selection item input
     * works only multiple mode
     * @default checkbox
     */
    multiSelectionInput?: MaSelectMultiSelectionInput;
    /**
     * Whether there will be a check icon on the selected item label or not
     * works only single mode
     */
    hideCheckIcon?: boolean;
    /**
     * compact mode, Some spaces change in the input
     * @default false
     */
    compact?: boolean;
    /**
     * Hide the suffix arrow icon & slot
     * @default false
     */
    hideSuffix?: boolean;
    /**
     * disable arrow and enter keys actions
     * @default false
     */
    disableKeywordActions?: boolean;
}
export interface MaSelectOptionProps {
    /**
     * checkbox will appear on the right, left or hidden
     * works only multiple mode
     * @default left
     */
    checkboxPosition?: MaSelectOptionCheckboxPosition;
    /**
     * Whether there will be a check icon on the selected item label or not
     * works only single mode
     */
    hideCheckIcon?: boolean;
    /**
     * Active selection item input
     * works only multiple mode
     * @default checkbox
     */
    multiSelectionInput?: MaSelectMultiSelectionInput;
    /**
     * The value of the option
     */
    value: MaSelectOptionValue;
    /**
     * The label of the option
     */
    label?: string;
    /**
     * The disabled state of the option
     * @default false
     */
    disabled?: boolean;
}
export interface MaSelectGroupProps {
    /**
     * The label of the option group
     */
    label?: string;
}
