interface SelectOptions {
    checkStrictly?: boolean;
    checkedStrategy?: 'all' | 'parent' | 'child';
    primaryKey: string;
}
interface TreeIndex {
    nodeMap: Map<string, any>;
    parentMap: Map<string, string | null>;
    childrenMap: Map<string, string[]>;
}
export declare function buildTreeIndex(data: any[], primaryKey: string, childrenKey?: string): TreeIndex;
export declare function getDescendants(key: string, childrenMap: Map<string, string[]>): string[];
/**
 * Check if node or any of its ancestors is disabled
 * If parents disabled, children are also considered disabled
 */
export declare function isNodeOrAncestorDisabled(key: string, treeIndex: TreeIndex, isDisabledFn: (row: any) => boolean): boolean;
export declare function handleSelectOptimized1(treeIndex: TreeIndex, currentSelected: Set<string>, targetKey: string, checked: boolean, options: SelectOptions): string[];
export declare function handleSelectOptimized(treeIndex: TreeIndex, currentSelected: Set<string>, targetKey: string, checked: boolean, options: SelectOptions, isDisabledFn?: (row: any) => boolean): string[];
export declare function isRowChecked2(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, checkedStrategy: 'all' | 'parent' | 'child'): boolean;
export declare function isRowChecked1(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, checkedStrategy: 'all' | 'parent' | 'child', isDisabledFn?: (row: any) => boolean): boolean;
export declare function isRowChecked(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, checkedStrategy: 'all' | 'parent' | 'child', isDisabledFn?: (row: any) => boolean): boolean;
export declare function isRowCheckedTree(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, isDisabled?: (row: any) => boolean): boolean;
export declare function isRowIndeterminate1(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, checkedStrategy: 'all' | 'parent' | 'child'): boolean;
export declare function isRowIndeterminate(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, checkedStrategy: 'all' | 'parent' | 'child', isDisabledFn?: (row: any) => boolean): boolean;
export declare function isCheckedAll(selectedKeys: Set<string>, treeIndex: TreeIndex, checkedStrategy: 'all' | 'parent' | 'child', isDisabled?: (row: any) => boolean): boolean;
export declare function isIndeterminateAll1(selectedKeys: Set<string>, treeIndex: TreeIndex, checkedStrategy: 'all' | 'parent' | 'child', isDisabled?: (row: any) => boolean): boolean;
export declare function isIndeterminateAll(dataKeys: string[], selectedKeys: Set<string>, treeIndex: TreeIndex, checkedStrategy: 'all' | 'parent' | 'child', isDisabledFn?: (row: any) => boolean): boolean;
export declare function getAllEnabledKeys1(treeIndex: TreeIndex, isRowDisabled?: (key: string) => boolean): string[];
export declare function getAllEnabledKeys(data: any[], key: any, isRowDisabled?: (row: any) => boolean, childrenKey?: string): string[];
export declare function buildDisabledKeySet(treeIndex: TreeIndex, isDisabled?: (row: any) => boolean): Set<string>;
export declare function getRowsByKeysKeepTreeOrder(keys: string[], tree: any[], key: any): any[];
export declare function getParentKeysLarge<T extends Record<string, any>>(data: T[], keyField?: keyof T, childrenField?: keyof T): any[];
export declare function isEqualSetLarge<T>(a: Set<T>, b: Set<T>): boolean;
export declare const getAllEnabledParentKeys: (tree: any[], primaryKey: string, isDisabled?: (row: any) => boolean) => any[];
export declare function toggleTreeSelection1(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, isDisabled?: (row: any) => boolean): Set<string>;
export declare function toggleTreeSelection2(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, isDisabled?: (row: any) => boolean): Set<string>;
export declare function toggleTreeSelection(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, isDisabled?: (row: any) => boolean): Set<string>;
export declare function toggleTreeSelection3(key: string, selectedKeys: Set<string>, treeIndex: TreeIndex, isDisabled?: (row: any) => boolean): Set<string>;
export {};
