import { DirectionType, ITreeselectParams, IconsType, OptionType, ValueInputType } from 'treeselectjs';
export type { IconsType, DirectionType, OptionType, TagsSortItem } from 'treeselectjs';
/** Value type for v-model and emitted events: single id, array of ids, or null/undefined. */
export type TreeselectValue = ValueInputType;
/**
 * Keys from ITreeselectParams that are not exposed as Vue props.
 * The component provides these internally (container, slot, callbacks).
 */
type TreeselectOmittedParams = 'parentHtmlContainer' | 'listSlotHtmlComponent' | 'inputCallback' | 'openCallback' | 'closeCallback' | 'nameChangeCallback' | 'searchCallback' | 'openCloseGroupCallback';
/**
 * Props for the Vue Treeselect component.
 * Mirrors ITreeselectParams except: uses `modelValue` instead of `value` for v-model,
 * and omits container/slot/callback params (handled internally).
 * @see ITreeselectParams in treeselectjs for full option descriptions
 */
export type VueTreeselectProps = Omit<ITreeselectParams, TreeselectOmittedParams | 'value'> & {
    /** Bound value (v-model). Single id, array of ids, or null/undefined. */
    modelValue?: TreeselectValue;
};
/**
 * Vue 3 wrapper for treeselectjs: hierarchical single/multi select with tags and search.
 * All options from ITreeselectParams are supported as props (except value → use modelValue).
 * Emits: update:modelValue, input, open, close, name-change, search, open-close-group.
 * @see https://github.com/dipson88/treeselectjs/tree/main/packages/vue-treeselectjs
 * @see ITreeselectParams in treeselectjs for option details
 */
declare const _default: import('vue').DefineComponent<{
    options?: OptionType[] | undefined;
    openLevel?: number | undefined;
    appendToBody?: boolean | undefined;
    alwaysOpen?: boolean | undefined;
    showTags?: boolean | undefined;
    tagsCountText?: string | undefined;
    tagsSortFn?: import('treeselectjs').TagsSortFnType | undefined;
    clearable?: boolean | undefined;
    searchable?: boolean | undefined;
    placeholder?: string | undefined;
    grouped?: boolean | undefined;
    isGroupedValue?: boolean | undefined;
    disabled?: boolean | undefined;
    emptyText?: string | undefined;
    staticList?: boolean | undefined;
    id?: string | undefined;
    ariaLabel?: string | undefined;
    isSingleSelect?: boolean | undefined;
    showCount?: boolean | undefined;
    disabledBranchNode?: boolean | undefined;
    direction?: DirectionType | undefined;
    expandSelected?: boolean | undefined;
    saveScrollPosition?: boolean | undefined;
    isIndependentNodes?: boolean | undefined;
    rtl?: boolean | undefined;
    listClassName?: string | undefined;
    isBoostedRendering?: boolean | undefined;
    iconElements?: Partial<IconsType> | undefined;
    modelValue?: ValueInputType;
}, {
    treeselectContainerRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
    treeselectAfterListSlotRef: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    'update:modelValue': (_value: TreeselectValue) => true;
    input: (_value: TreeselectValue) => true;
    open: (_value: TreeselectValue) => true;
    close: (_value: TreeselectValue) => true;
    'name-change': (_name: string) => true;
    search: (_value: string) => true;
    'open-close-group': (_payload: {
        groupId: TreeselectValue;
        isClosed: boolean;
    }) => true;
}, string, import('vue').PublicProps, Readonly<{
    options?: OptionType[] | undefined;
    openLevel?: number | undefined;
    appendToBody?: boolean | undefined;
    alwaysOpen?: boolean | undefined;
    showTags?: boolean | undefined;
    tagsCountText?: string | undefined;
    tagsSortFn?: import('treeselectjs').TagsSortFnType | undefined;
    clearable?: boolean | undefined;
    searchable?: boolean | undefined;
    placeholder?: string | undefined;
    grouped?: boolean | undefined;
    isGroupedValue?: boolean | undefined;
    disabled?: boolean | undefined;
    emptyText?: string | undefined;
    staticList?: boolean | undefined;
    id?: string | undefined;
    ariaLabel?: string | undefined;
    isSingleSelect?: boolean | undefined;
    showCount?: boolean | undefined;
    disabledBranchNode?: boolean | undefined;
    direction?: DirectionType | undefined;
    expandSelected?: boolean | undefined;
    saveScrollPosition?: boolean | undefined;
    isIndependentNodes?: boolean | undefined;
    rtl?: boolean | undefined;
    listClassName?: string | undefined;
    isBoostedRendering?: boolean | undefined;
    iconElements?: Partial<IconsType> | undefined;
    modelValue?: ValueInputType;
}> & Readonly<{
    "onUpdate:modelValue"?: ((_value: ValueInputType) => any) | undefined;
    onInput?: ((_value: ValueInputType) => any) | undefined;
    onOpen?: ((_value: ValueInputType) => any) | undefined;
    onClose?: ((_value: ValueInputType) => any) | undefined;
    "onName-change"?: ((_name: string) => any) | undefined;
    onSearch?: ((_value: string) => any) | undefined;
    "onOpen-close-group"?: ((_payload: {
        groupId: TreeselectValue;
        isClosed: boolean;
    }) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export default _default;
