import { Multiselect } from 'vue-multiselect';
/**
 * ------------------------------------------------
 *  # Setup: Props/Variables/Models
 * ------------------------------------------------
 */
export interface DsgInputSelectOption {
    id: string | number;
    label: string;
    [key: string]: any;
}
export type DsgInputSelectSize = "sm" | "md" | "lg";
export interface DsgInputSelectProps {
    options?: DsgInputSelectOption[];
    multiple?: boolean;
    fetchOnLoad?: boolean;
    getUrl?: string;
    extraParams?: {
        [key: string]: any;
    };
    strategy?: "absolute" | "fixed";
    placeholder?: string;
    icon?: string | null;
    label?: string;
    showLabels?: boolean;
    disabled?: boolean;
    closeOnSelect?: boolean;
    trackBy?: string;
    contentMaxWidth?: string;
    itemLabel?: string;
    allowEmpty?: boolean;
    validateOnLoad?: boolean;
    useTeleport?: boolean;
    wrapContent?: boolean;
    contentWrapperClass?: string | string[];
    selectLabel?: string;
    selectedLabel?: string;
    errors?: string[] | string;
    scrollBind?: HTMLElement | Window;
    size?: DsgInputSelectSize;
}
type __VLS_Props = DsgInputSelectProps;
type __VLS_PublicProps = {
    "modelValue"?: any;
    "single"?: any;
} & __VLS_Props;
declare function __VLS_template(): {
    attrs: Partial<{}>;
    slots: Readonly<{
        singleLabel: {
            option?: DsgInputSelectOption | null;
        };
        option: {
            option?: DsgInputSelectOption | null;
        };
        caret: {
            toggle: () => void;
        };
    }> & {
        singleLabel: {
            option?: DsgInputSelectOption | null;
        };
        option: {
            option?: DsgInputSelectOption | null;
        };
        caret: {
            toggle: () => void;
        };
    };
    refs: {
        dsgInputSelectEl: HTMLDivElement;
        multiselectEl: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue-multiselect').ComponentProps>, {}, {}, {}, {
            activate(): void;
            deactivate(): void;
        }, import('vue').DefineComponent<import('vue-multiselect').MultiselectMixinProps> | import('vue').DefineComponent<import('vue-multiselect').PointerMixinProps>, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
            P: Readonly<import('vue-multiselect').MultiselectMixinProps>;
            B: {};
            D: {};
            C: import('vue').ComputedOptions;
            M: import('vue').MethodOptions;
            Defaults: {};
        } & {
            P: {};
            B: {};
            D: {};
            C: {};
            M: {};
            Defaults: {};
        } & {
            P: Readonly<import('vue-multiselect').PointerMixinProps>;
            B: {};
            D: {};
            C: import('vue').ComputedOptions;
            M: import('vue').MethodOptions;
            Defaults: {};
        }, Readonly<import('vue-multiselect').MultiselectMixinProps> & Readonly<import('vue-multiselect').PointerMixinProps> & Readonly<import('vue-multiselect').ComponentProps>, {}, {}, import('vue').ComputedOptions, import('vue').MethodOptions & {
            activate(): void;
            deactivate(): void;
        }, {} & {} & {}> | null;
    };
    rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {
    getInstance: () => typeof Multiselect | undefined | null;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:modelValue": (value: any) => any;
    "update:single": (value: any) => any;
} & {
    select: (value: any, id: string | number) => any;
    "update:modelValue": (value: any) => any;
    "update:model-value": (value: any) => any;
    "search-change": (queryTerm: string) => any;
    tag: (label: any, id: string | number) => any;
    open: (id: string | number) => any;
    close: (value: any, id: string | number) => any;
    remove: (value: any, id: string | number) => any;
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
    onSelect?: ((value: any, id: string | number) => any) | undefined;
    "onUpdate:modelValue"?: ((value: any) => any) | undefined;
    "onUpdate:model-value"?: ((value: any) => any) | undefined;
    "onSearch-change"?: ((queryTerm: string) => any) | undefined;
    onTag?: ((label: any, id: string | number) => any) | undefined;
    onOpen?: ((id: string | number) => any) | undefined;
    onClose?: ((value: any, id: string | number) => any) | undefined;
    onRemove?: ((value: any, id: string | number) => any) | undefined;
    "onUpdate:single"?: ((value: any) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
    dsgInputSelectEl: HTMLDivElement;
    multiselectEl: import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue-multiselect').ComponentProps>, {}, {}, {}, {
        activate(): void;
        deactivate(): void;
    }, import('vue').DefineComponent<import('vue-multiselect').MultiselectMixinProps> | import('vue').DefineComponent<import('vue-multiselect').PointerMixinProps>, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
        P: Readonly<import('vue-multiselect').MultiselectMixinProps>;
        B: {};
        D: {};
        C: import('vue').ComputedOptions;
        M: import('vue').MethodOptions;
        Defaults: {};
    } & {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    } & {
        P: Readonly<import('vue-multiselect').PointerMixinProps>;
        B: {};
        D: {};
        C: import('vue').ComputedOptions;
        M: import('vue').MethodOptions;
        Defaults: {};
    }, Readonly<import('vue-multiselect').MultiselectMixinProps> & Readonly<import('vue-multiselect').PointerMixinProps> & Readonly<import('vue-multiselect').ComponentProps>, {}, {}, import('vue').ComputedOptions, import('vue').MethodOptions & {
        activate(): void;
        deactivate(): void;
    }, {} & {} & {}> | null;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
