import type { Snippet } from "svelte";
export interface TreeNode<ItemType> {
    item: ItemType;
    children?: TreeNode<ItemType>[];
}
export interface FlatTreeNode<ItemType> {
    item: ItemType;
    key: string;
    parentKey?: string;
}
type TreeInputMode<ItemType> = {
    treeNodes: TreeNode<ItemType>[];
    getKey: (item: ItemType) => string;
    onUpdate: (nodes: TreeNode<ItemType>[]) => void;
    flatNodes?: never;
} | {
    flatNodes: FlatTreeNode<ItemType>[];
    onUpdate: (flatNodes: FlatTreeNode<ItemType>[]) => void;
    treeNodes?: never;
    getKey?: never;
};
interface BaseProps<ItemType> {
    item: Snippet<[ItemType, number]>;
    disabled?: boolean;
    cssSelectorHandle?: string;
    levelPadding?: string;
}
export type ReorderableTreeProps<ItemType> = BaseProps<ItemType> & TreeInputMode<ItemType>;
declare class __sveltets_Render<ItemType> {
    props(): ReorderableTreeProps<ItemType>;
    events(): {};
    slots(): {};
    bindings(): "";
    exports(): {};
}
interface $$IsomorphicComponent {
    new <ItemType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<ItemType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<ItemType>['props']>, ReturnType<__sveltets_Render<ItemType>['events']>, ReturnType<__sveltets_Render<ItemType>['slots']>> & {
        $$bindings?: ReturnType<__sveltets_Render<ItemType>['bindings']>;
    } & ReturnType<__sveltets_Render<ItemType>['exports']>;
    <ItemType>(internal: unknown, props: ReturnType<__sveltets_Render<ItemType>['props']> & {}): ReturnType<__sveltets_Render<ItemType>['exports']>;
    z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
}
declare const ReorderableTree: $$IsomorphicComponent;
type ReorderableTree<ItemType> = InstanceType<typeof ReorderableTree<ItemType>>;
export default ReorderableTree;
//# sourceMappingURL=ReorderableTree.svelte.d.ts.map