import { HTMLAttributes, UnwrapRef, VNodeProps, AllowedComponentProps, ComponentCustomProps, PublicProps, ShallowUnwrapRef, VNode } from 'vue';
import { Assign } from '../../types';
import { RenderStrategyProps } from '../../utils/use-render-strategy';
import { TreeNode } from '../collection';
import { PolymorphicProps } from '../factory';
import { UseTreeViewReturn } from './use-tree-view';
interface RootProviderProps<T extends TreeNode> {
    value: UnwrapRef<UseTreeViewReturn<T>>;
}
export interface TreeViewRootProviderBaseProps<T extends TreeNode> extends RootProviderProps<T>, RenderStrategyProps, PolymorphicProps {
}
export interface TreeViewRootProviderProps<T extends TreeNode> extends TreeViewRootProviderBaseProps<T>, 
/**
 * @vue-ignore
 */
HTMLAttributes {
}
export type TreeViewRootProviderComponent<P = {}> = <T extends TreeNode>(props: Assign<TreeViewRootProviderProps<T>, P>) => any;
declare const _default: <T extends TreeNode>(__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<{} & VNodeProps & AllowedComponentProps & ComponentCustomProps, never>, never> & TreeViewRootProviderProps<T> & Partial<{}>> & PublicProps;
    expose(exposed: ShallowUnwrapRef<{}>): void;
    attrs: any;
    slots: {
        default?(_: {}): any;
    };
    emit: {};
}>) => VNode & {
    __ctx?: Awaited<typeof __VLS_setup>;
};
export default _default;
type __VLS_PrettifyLocal<T> = {
    [K in keyof T]: T[K];
} & {};
