import { SvelteComponent } from "svelte";
import type { DropdownItem, DropdownHeader } from '../types/dropdownTypes';
declare const __propDef: {
    props: {
        /**
             * The label displayed above the dropdown button.
             * @type {string}
             */ label?: string;
        /**
             * The text displayed on the dropdown button.
             * Default is "Select one...".
             * @type {string}
             */ buttonText?: string;
        /**
             * An array of dropdown items to be displayed.
             * Each item can include properties such as `label`, `value`, `href`, `icon`, `destructive`, `divider`, and `checked`.
             *
             * Note: You are responsible for managing the uniqueness and consistency of item identifiers.
             * - If a `value` is not provided for an item, selection logic will fall back to comparing by `label`.
             * - This fallback may lead to incorrect behavior if labels are not unique or are omitted.
             * - For reliable and predictable selection behavior — especially when using `bind:selectedOptions` — it is **strongly recommended** to provide a unique `value` for each item.
             *
             * @type {DropdownItem[]}
             */ items?: DropdownItem[];
        /**
             * Optional header object for the dropdown.
             * Contains a title and subtitle for the dropdown header.
             * @type {DropdownHeader | undefined}
             */ header?: DropdownHeader | undefined;
        /**
             * The interaction type of the dropdown. Options are:
             * 'default' - simple list,
             * 'checkbox' - checkbox items,
             * 'radio' - radio button items,
             * 'toggle' - toggle switch items.
             * @type {'default' | 'checkbox' | 'radio' | 'toggle'}
             */ type?: "default" | "checkbox" | "radio" | "toggle";
        /**
             * Configures the transition animation for the dropdown.
             * @type {{ duration: number, delay: number }}
             * @property {number} duration - Duration of the transition in milliseconds. Default is 200ms.
             * @property {number} delay - Delay before the transition starts in milliseconds. Default is 50ms.
             * Example usage:
             * ```
             * <Dropdown transition={{ duration: 300, delay: 100 }} />
             * ```
             */ transition?: {
            duration: number;
            delay: number;
        };
        /**
             * The currently selected options for the dropdown.
             * An array of `DropdownItem` objects representing the selected items.
             *
             * This prop is **reactive** and should be used with two-way binding via `bind:selectedOptions`.
             *
             * Usage Notes:
             * - For single-selection dropdowns (`'default'` and `'radio'` types), this array will contain **only one item**, or be empty if nothing is selected.
             * - For multi-selection dropdowns (`'checkbox'` and `'toggle'` types), this array can contain multiple items.
             * - Each selected item must match the format of the objects provided in the `items` array.
             * - If items do not have unique `value` fields, fallback comparison will be done using `label`.
             *
             * @type {DropdownItem[]}
             */ selectedOptions?: DropdownItem[];
        /**
             * Whether the dropdown should close automatically after selection (for default type)
             * @type {boolean}
             */ closeOnSelect?: boolean;
        /**
             * Whether the dropdown is disabled or not.
             * @type {boolean}
             */ disabled?: boolean;
    };
    events: {
        change: CustomEvent<DropdownItem[]>;
    } & {
        [evt: string]: CustomEvent<any>;
    };
    slots: {};
    exports?: {};
    bindings?: string;
};
export type DropdownProps = typeof __propDef.props;
export type DropdownEvents = typeof __propDef.events;
export type DropdownSlots = typeof __propDef.slots;
export default class Dropdown extends SvelteComponent<DropdownProps, DropdownEvents, DropdownSlots> {
}
export {};
