import { ITreeItem } from '../types';
declare type ID = ITreeItem['id'];
export interface ITreeState {
    expandedIds: Record<ID, boolean>;
    selectedNodes: Record<ID, ITreeItem | undefined>;
}
export declare const getInitialTreeState: () => ITreeState;
export declare const actions: {
    toggleExpanded: (node: ITreeItem) => {
        readonly type: "TOGGLE_EXPANDED";
        readonly node: ITreeItem;
    };
    toggleSelected: (node: ITreeItem, allowMultiple: boolean) => {
        readonly type: "TOGGLE_SELECTED";
        readonly node: ITreeItem;
        readonly allowMultiple: boolean;
    };
    setSelected: (nodes: ITreeItem[], fullUpdate: boolean) => {
        readonly type: "SET_SELECTED";
        readonly nodes: ITreeItem[];
        readonly fullUpdate: boolean;
    };
};
declare type Actions = typeof actions;
declare type Action = ReturnType<Actions[keyof Actions]>;
export declare const treeReducer: (state: ITreeState, action: Action) => ITreeState;
export {};
