import { ListOptionBase } from '@platforma-sdk/model';
/**
 * A multi-select autocomplete component that allows users to search and select multiple values from a list of options.
 * Supports async data fetching, keyboard navigation, and displays selected items as removable chips.
 *
 * @example
 * Basic usage:
 * <PlAutocompleteMulti
 *   v-model="selectedUsers"
 *   :options-search="searchUsers"
 *   :model-search="getUsersByIds"
 *   label="Select Users"
 *   placeholder="Search for users..."
 *   required
 *   :debounce="300"
 *   helper="Choose one or more users from the list"
 * />
 *
 * With async functions:
 * const selectedUsers = ref([])
 *
 * const searchUsers = async (searchTerm) => {
 *   const response = await fetch('/api/users/search?q=' + searchTerm)
 *   const users = await response.json()
 *   return users.map(user => ({ value: user.id, label: user.name }))
 * }
 *
 * const getUsersByIds = async (userIds) => {
 *   if (!userIds.length) return []
 *   const response = await fetch('/api/users?ids=' + userIds.join(','))
 *   const users = await response.json()
 *   return users.map(user => ({ value: user.id, label: user.name }))
 * }
 */
declare const _default: <M extends string | number = string>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
    props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
        readonly "onUpdate:modelValue"?: ((v: M[]) => any) | undefined;
    } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:modelValue"> & {
        /**
         * The current selected values.
         */
        modelValue: M[];
        /**
         * Lambda for requesting of available options for the dropdown by search string.
         */
        optionsSearch: OptionsSearch<M>;
        /**
         * Unique identifier for the source of the options, changing it will invalidate the options cache.
         */
        sourceId?: string;
        /**
         * The label text for the dropdown field (optional)
         */
        label?: string;
        /**
         * A helper text displayed below the dropdown when there are no errors (optional).
         */
        helper?: string;
        /**
         * Error message displayed below the dropdown (optional)
         */
        error?: unknown;
        /**
         * Placeholder text shown when no value is selected.
         */
        placeholder?: string;
        /**
         * If `true`, the dropdown component is marked as required.
         */
        required?: boolean;
        /**
         * If `true`, the dropdown component is disabled and cannot be interacted with.
         */
        disabled?: boolean;
        /**
         * Debounce time in ms for the options search.
         */
        debounce?: number;
        /**
         * If `true`, the search input is reset and focus is set on it when the new option is selected.
         */
        resetSearchOnSelect?: boolean;
        /**
         * The text to display when no options are found.
         */
        emptyOptionsText?: string;
        /**
         * Makes some of corners not rounded
         * */
        groupPosition?: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "middle";
    } & Partial<{}>> & import('vue').PublicProps;
    expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: {
        append?(_: {}): any;
        tooltip?(_: {}): any;
    };
    emit: (e: "update:modelValue", v: M[]) => void;
}>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
    [key: string]: any;
}> & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
export interface OptionsSearch<T> {
    (s: string, type: 'label'): Promise<Readonly<ListOptionBase<T>[]>>;
    (s: T[], type: 'value'): Promise<Readonly<ListOptionBase<T>[]>>;
}
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
//# sourceMappingURL=PlAutocompleteMulti.vue.d.ts.map