import * as O from 'fp-ts/Option'; import * as TE from 'fp-ts/TaskEither'; import * as T from 'fp-ts/Tree'; import { MenuAction } from '../actionsMenu/ActionsMenu'; import { ActionReturn } from './TreeView'; declare type ForestFunctions = { forest: T.Forest; addChild: (makeChild: (fromNode: T.Tree) => TE.TaskEither>) => (key: K) => TE.TaskEither>; addRoot: (newRoot: A) => void; duplicate: (key: K) => (modify: (a: A) => TE.TaskEither) => TE.TaskEither>; remove: (key: K) => void; moveUp: (key: K) => O.Option>; moveDown: (key: K) => O.Option>; moveInto: (key: K) => O.Option>; canMoveUp: (key: K) => boolean; canMoveDown: (key: K) => boolean; canMoveInto: (key: K) => boolean; }; export declare const useForestFunctions: (forest: T.Forest, getKey: (a: A) => K) => ForestFunctions; export declare const useTreeViewCreateChildAction: ({ addChild }: Pick, "addChild">, createNode: (fromNode: T.Tree) => TE.TaskEither>) => (key: K) => MenuAction>; declare type MovementChecks = 'canMoveDown' | 'canMoveInto' | 'canMoveUp'; declare type MovementFuncNames = 'moveUp' | 'moveDown' | 'moveInto'; declare type MovementFuncs = { [F in MovementFuncNames]: (key: K) => void; }; export declare const useTreeViewMoveActions: (ffs: Pick, MovementChecks> & MovementFuncs) => (key: K) => MenuAction>[]; export declare const useTreeViewActions: (ffs: Pick, "addChild" | "canMoveUp" | "canMoveDown" | "canMoveInto"> & MovementFuncs, createNode: (fromNode: T.Tree) => TE.TaskEither>) => (key: K) => MenuAction>[]; export {};