import { SvelteComponentTyped } from "svelte";
import type { ComponentProps } from 'svelte';
import type { Placement } from '@floating-ui/dom';
declare class __sveltets_Render<TValue> {
    props(): {
        [x: string]: any;
        options: import("..").MenuOption<TValue>[];
        value: TValue[] | undefined;
        mode?: "actions" | "immediate" | undefined;
        maintainOrder?: boolean | undefined;
        indeterminateSelected?: TValue[] | undefined;
        open?: boolean | undefined;
        duration?: number | undefined;
        placement?: Placement | undefined;
        autoPlacement?: boolean | undefined;
        search?: boolean | ((text: string, options: import("..").MenuOption<TValue>[]) => Promise<import("..").MenuOption<TValue>[]>) | undefined;
        autoFocusSearch?: boolean | undefined;
        placeholder?: string | undefined | undefined;
        infiniteScroll?: boolean | undefined;
        searchText?: string | undefined;
        max?: number | undefined | undefined;
        optionProps?: Partial<{
            [x: string]: any;
            checked: boolean;
            indeterminate?: boolean | undefined;
            disabled?: boolean | undefined;
            variant?: "checkbox" | "checkmark" | "fill" | undefined;
            classes?: {
                root?: string;
                checkbox?: ComponentProps<import("./Checkbox.svelte").default>["classes"];
                container?: string;
            } | undefined;
        }> | undefined;
        classes?: {
            root?: string;
            menu?: string;
            multiSelect?: {
                root?: string;
                search?: string;
                options?: string;
                actions?: string;
            } | undefined;
        } | undefined;
        menuItemsEl?: HTMLMenuElement | undefined;
        onApply?: ((ctx: {
            value: TValue[];
            selection: {
                selected: {} | unknown[] | null;
                setSelected: (values: unknown[]) => void;
                toggleSelected: (value: unknown) => void;
                isSelected: (value: unknown) => boolean;
                isDisabled: (value: unknown) => boolean;
                toggleAll: () => void;
                isAllSelected: () => boolean;
                isAnySelected: () => boolean;
                isMaxSelected: () => boolean;
                clear: () => void;
                reset: () => void;
                all: import("svelte/store").Writable<unknown[]>;
            };
            indeterminate: Set<TValue>;
            original: {
                selected: import("..").MenuOption<TValue>[];
                unselected: import("..").MenuOption<TValue>[];
            };
        }) => Promise<void>) | undefined;
    };
    events(): {
        close: CustomEvent<any>;
        cancel: CustomEvent<null>;
        change: CustomEvent<{
            value: unknown[];
            selection: {
                selected: {} | unknown[] | null;
                setSelected: (values: unknown[]) => void;
                toggleSelected: (value: unknown) => void;
                isSelected: (value: unknown) => boolean;
                isDisabled: (value: unknown) => boolean;
                toggleAll: () => void;
                isAllSelected: () => boolean;
                isAnySelected: () => boolean;
                isMaxSelected: () => boolean;
                clear: () => void;
                reset: () => void;
                all: import("svelte/store").Writable<unknown[]>;
            };
            indeterminate: Set<unknown>;
            original: {
                selected: import("..").MenuOption<unknown>[];
                unselected: import("..").MenuOption<unknown>[];
            };
        }>;
    } & {
        [evt: string]: CustomEvent<any>;
    };
    slots(): {
        beforeOptions: {
            slot: string;
            selection: {
                selected: {} | unknown[] | null;
                setSelected: (values: unknown[]) => void;
                toggleSelected: (value: unknown) => void;
                isSelected: (value: unknown) => boolean;
                isDisabled: (value: unknown) => boolean;
                toggleAll: () => void;
                isAllSelected: () => boolean;
                isAnySelected: () => boolean;
                isMaxSelected: () => boolean;
                clear: () => void;
                reset: () => void;
                all: import("svelte/store").Writable<unknown[]>;
            };
        };
        afterOptions: {
            slot: string;
            selection: {
                selected: {} | unknown[] | null;
                setSelected: (values: unknown[]) => void;
                toggleSelected: (value: unknown) => void;
                isSelected: (value: unknown) => boolean;
                isDisabled: (value: unknown) => boolean;
                toggleAll: () => void;
                isAllSelected: () => boolean;
                isAnySelected: () => boolean;
                isMaxSelected: () => boolean;
                clear: () => void;
                reset: () => void;
                all: import("svelte/store").Writable<unknown[]>;
            };
        };
        option: {
            option: unknown;
            label: any;
            value: unknown[];
            checked: any;
            indeterminate: any;
            disabled: any;
            onChange: () => void;
        };
        actions: {
            slot: string;
            selection: {
                selected: {} | unknown[] | null;
                setSelected: (values: unknown[]) => void;
                toggleSelected: (value: unknown) => void;
                isSelected: (value: unknown) => boolean;
                isDisabled: (value: unknown) => boolean;
                toggleAll: () => void;
                isAllSelected: () => boolean;
                isAnySelected: () => boolean;
                isMaxSelected: () => boolean;
                clear: () => void;
                reset: () => void;
                all: import("svelte/store").Writable<unknown[]>;
            };
        };
    };
}
export type MultiSelectMenuProps<TValue> = ReturnType<__sveltets_Render<TValue>['props']>;
export type MultiSelectMenuEvents<TValue> = ReturnType<__sveltets_Render<TValue>['events']>;
export type MultiSelectMenuSlots<TValue> = ReturnType<__sveltets_Render<TValue>['slots']>;
export default class MultiSelectMenu<TValue> extends SvelteComponentTyped<MultiSelectMenuProps<TValue>, MultiSelectMenuEvents<TValue>, MultiSelectMenuSlots<TValue>> {
}
export {};
