///
import { getHelper } from './helper';
export declare type NodePos = number[];
export declare const FIELD_NAMES: {
title: string;
key: string;
children: string;
};
export declare type NodeLike = Record[]> & T;
export interface IRootScope {
$root: NodeLike;
$refs: Map>;
$fieldNames: typeof FIELD_NAMES;
$helper: ReturnType;
}
export interface INodeScope {
$root: NodeLike;
$pos: number[];
$record: NodeLike & Pick, '$lookup' | '$index'>;
$lookup: INodeScope['$record'] | NodeLike;
$records: NodeLike[];
$index: number;
$parents: NodeLike[];
$path?: string;
$extra?: Record & {
expanded?: boolean;
checked?: boolean;
selected?: boolean;
halfChecked?: boolean;
};
}
export declare const useRoot: () => IRootScope | null;
export declare const useHelper: () => {
readonly dataSource: any[] | undefined;
take(x: any): {
key: import("react").Key | undefined;
title: string | undefined;
children: any[] | undefined;
};
getPos(n: object): any;
posToParents(pos: import("./helper").NodePos): any[];
posToPath(pos: import("./helper").NodePos): string | undefined;
getNodeAtPos(pos: import("./helper").NodePos | null): object | null;
append(pos: import("./helper").NodePos, method?: "replace" | "push" | "unshift", ...nodes: object[]): void;
copy(pos: import("./helper").NodePos, neo?: object | undefined): void;
remove(pos: import("./helper").NodePos): void;
move(before: import("./helper").NodePos, after: import("./helper").NodePos): void;
} | undefined;
export declare const useNode: (keyOrPos?: React.Key | NodePos) => INodeScope | null | undefined;
export declare const RootScope: (props: import("react").PropsWithChildren<{
getRoot: () => NodeLike;
fieldNames?: Partial<{
title: string;
key: string;
children: string;
}> | undefined;
}>) => import("react").JSX.Element;
export declare const NodeScope: (props: import("react").PropsWithChildren<{
getPos: (root: NodeLike) => NodePos;
getNode?: ((root: NodeLike) => NodeLike) | undefined;
getExtra?: ((root: NodeLike) => (Record & {
expanded?: boolean | undefined;
checked?: boolean | undefined;
selected?: boolean | undefined;
halfChecked?: boolean | undefined;
}) | undefined) | undefined;
}>) => import("react").JSX.Element;