import { HTMLAttributes, VNodeProps, AllowedComponentProps, ComponentCustomProps, PublicProps, ShallowUnwrapRef, VNode } from 'vue';
import { Assign } from '../../types';
import { CollectionItem } from '../collection';
import { PolymorphicProps } from '../factory';
import { RootProps } from './listbox.types';
import { SelectionDetails, ValueChangeDetails, HighlightChangeDetails } from '@zag-js/listbox';
export interface ListboxRootBaseProps<T extends CollectionItem> extends RootProps<T>, PolymorphicProps {
}
export interface ListboxRootProps<T extends CollectionItem> extends ListboxRootBaseProps<T>, 
/**
 * @vue-ignore
 */
HTMLAttributes {
}
export type ListboxRootComponentProps<T extends CollectionItem = CollectionItem, P = {}> = Assign<ListboxRootProps<T>, P>;
export type ListboxRootComponent<P = {}> = <T extends CollectionItem>(props: ListboxRootComponentProps<T, P>) => any;
export type { RootEmits as ListboxRootEmits } from './listbox.types';
declare const _default: <T extends CollectionItem>(__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 onSelect?: ((details: SelectionDetails) => any) | undefined;
        readonly onValueChange?: ((details: ValueChangeDetails<T>) => any) | undefined;
        readonly "onUpdate:modelValue"?: ((value: string[]) => any) | undefined;
        readonly onHighlightChange?: ((details: HighlightChangeDetails<T>) => any) | undefined;
    } & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, "onSelect" | "onValueChange" | "onUpdate:modelValue" | "onHighlightChange"> & ListboxRootBaseProps<T> & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: {
        default?(_: {}): any;
    };
    emit: ((evt: "select", details: SelectionDetails) => void) & ((evt: "valueChange", details: ValueChangeDetails<T>) => void) & ((evt: "update:modelValue", value: string[]) => void) & ((evt: "highlightChange", details: HighlightChangeDetails<T>) => void);
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
