///
import '../../../Views/Question/Params/TreeBoxParam.scss';
import { CheckboxTreeProps } from '@veupathdb/coreui/dist/components/inputs/checkboxes/CheckboxTree/CheckboxTree';
import { TreeBoxEnumParam, TreeBoxVocabNode } from '../../../Utils/WdkModel';
import { Context } from '../../../Views/Question/Params/Utils';
import { Action } from '../../../Actions';
import { DispatchAction } from '../../../Core/CommonTypes';
export declare type State = {
expandedList: string[];
searchTerm: string;
};
export declare type TreeBoxProps = {
parameter: TreeBoxEnumParam;
selectedValues: string[];
onChange: (newValue: string[]) => void;
uiState: State;
context: Context;
dispatch: DispatchAction;
wrapCheckboxTreeProps?: (props: CheckboxTreeProps) => CheckboxTreeProps;
};
export declare function reduce(state: State | undefined, action: Action): State;
export declare function TreeBoxEnumParamComponent(props: TreeBoxProps): JSX.Element;
export default TreeBoxEnumParamComponent;
export declare function useSelectedLeaves(tree: TreeBoxVocabNode, selectedNodes: string[]): string[];
export declare function useSelectionCounts(countOnlyLeaves: boolean, tree: TreeBoxVocabNode, selectedLeaves: string[], selectedNodes: string[]): {
allCount: number;
selectedCount: number;
};
export declare function useDefaultCheckboxTreeProps(props: TreeBoxProps, tree: TreeBoxVocabNode, selectedLeaves: string[]): CheckboxTreeProps;
//# sourceMappingURL=TreeBoxEnumParam.d.ts.map