import { TreeViewRootSelector } from "../../utils/selectors.js";
import { UseTreeViewSelectionSignature } from "./useTreeViewSelection.types.js";
/**
 * Get the selected items.
 * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
 * @returns {TreeViewSelectionValue<boolean>} The selected items.
 */
export declare const selectorSelectionModel: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
  cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
}) => string | string[] | null) & {
  clearCache: () => void;
  resultsCount: () => number;
  resetResultsCount: () => void;
} & {
  resultFunc: (resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => string | string[] | null;
  memoizedResultFunc: ((resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => string | string[] | null) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  };
  lastResult: () => string | string[] | null;
  dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
  recomputations: () => number;
  resetRecomputations: () => void;
  dependencyRecomputations: () => number;
  resetDependencyRecomputations: () => void;
} & {
  argsMemoize: typeof import("reselect").weakMapMemoize;
  memoize: typeof import("reselect").weakMapMemoize;
};
/**
 * Get the selected items as an array.
 * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
 * @returns {TreeViewItemId[]} The selected items as an array.
 */
export declare const selectorSelectionModelArray: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
  cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
}) => string[]) & {
  clearCache: () => void;
  resultsCount: () => number;
  resetResultsCount: () => void;
} & {
  resultFunc: (resultFuncArgs_0: string | string[] | null) => string[];
  memoizedResultFunc: ((resultFuncArgs_0: string | string[] | null) => string[]) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  };
  lastResult: () => string[];
  dependencies: [((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
    cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
  }) => string | string[] | null) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  } & {
    resultFunc: (resultFuncArgs_0: {
      selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
      isEnabled: boolean;
      isMultiSelectEnabled: boolean;
      isCheckboxSelectionEnabled: boolean;
      selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
    }) => string | string[] | null;
    memoizedResultFunc: ((resultFuncArgs_0: {
      selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
      isEnabled: boolean;
      isMultiSelectEnabled: boolean;
      isCheckboxSelectionEnabled: boolean;
      selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
    }) => string | string[] | null) & {
      clearCache: () => void;
      resultsCount: () => number;
      resetResultsCount: () => void;
    };
    lastResult: () => string | string[] | null;
    dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
  } & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
  }];
  recomputations: () => number;
  resetRecomputations: () => void;
  dependencyRecomputations: () => number;
  resetDependencyRecomputations: () => void;
} & {
  argsMemoize: typeof import("reselect").weakMapMemoize;
  memoize: typeof import("reselect").weakMapMemoize;
};
/**
 * Check if an item is selected.
 * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
 * @returns {boolean} `true` if the item is selected, `false` otherwise.
 */
export declare const selectorIsItemSelected: ((state: any, itemId: string) => boolean) & {
  clearCache: () => void;
  resultsCount: () => number;
  resetResultsCount: () => void;
} & {
  resultFunc: (resultFuncArgs_0: Map<string, true>, resultFuncArgs_1: string) => boolean;
  memoizedResultFunc: ((resultFuncArgs_0: Map<string, true>, resultFuncArgs_1: string) => boolean) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  };
  lastResult: () => boolean;
  dependencies: [((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
    cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
  }) => Map<string, true>) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  } & {
    resultFunc: (resultFuncArgs_0: string[]) => Map<string, true>;
    memoizedResultFunc: ((resultFuncArgs_0: string[]) => Map<string, true>) & {
      clearCache: () => void;
      resultsCount: () => number;
      resetResultsCount: () => void;
    };
    lastResult: () => Map<string, true>;
    dependencies: [((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
      cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
    }) => string[]) & {
      clearCache: () => void;
      resultsCount: () => number;
      resetResultsCount: () => void;
    } & {
      resultFunc: (resultFuncArgs_0: string | string[] | null) => string[];
      memoizedResultFunc: ((resultFuncArgs_0: string | string[] | null) => string[]) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
      };
      lastResult: () => string[];
      dependencies: [((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
        cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
      }) => string | string[] | null) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
      } & {
        resultFunc: (resultFuncArgs_0: {
          selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
          isEnabled: boolean;
          isMultiSelectEnabled: boolean;
          isCheckboxSelectionEnabled: boolean;
          selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
        }) => string | string[] | null;
        memoizedResultFunc: ((resultFuncArgs_0: {
          selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
          isEnabled: boolean;
          isMultiSelectEnabled: boolean;
          isCheckboxSelectionEnabled: boolean;
          selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
        }) => string | string[] | null) & {
          clearCache: () => void;
          resultsCount: () => number;
          resetResultsCount: () => void;
        };
        lastResult: () => string | string[] | null;
        dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
        recomputations: () => number;
        resetRecomputations: () => void;
        dependencyRecomputations: () => number;
        resetDependencyRecomputations: () => void;
      } & {
        argsMemoize: typeof import("reselect").weakMapMemoize;
        memoize: typeof import("reselect").weakMapMemoize;
      }];
      recomputations: () => number;
      resetRecomputations: () => void;
      dependencyRecomputations: () => number;
      resetDependencyRecomputations: () => void;
    } & {
      argsMemoize: typeof import("reselect").weakMapMemoize;
      memoize: typeof import("reselect").weakMapMemoize;
    }];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
  } & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
  }, (_: any, itemId: string) => string];
  recomputations: () => number;
  resetRecomputations: () => void;
  dependencyRecomputations: () => number;
  resetDependencyRecomputations: () => void;
} & {
  argsMemoize: typeof import("reselect").weakMapMemoize;
  memoize: typeof import("reselect").weakMapMemoize;
};
/**
 * Check if multi selection is enabled.
 * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
 * @returns {boolean} `true` if multi selection is enabled, `false` otherwise.
 */
export declare const selectorIsMultiSelectEnabled: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
  cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
}) => boolean) & {
  clearCache: () => void;
  resultsCount: () => number;
  resetResultsCount: () => void;
} & {
  resultFunc: (resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => boolean;
  memoizedResultFunc: ((resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => boolean) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  };
  lastResult: () => boolean;
  dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
  recomputations: () => number;
  resetRecomputations: () => void;
  dependencyRecomputations: () => number;
  resetDependencyRecomputations: () => void;
} & {
  argsMemoize: typeof import("reselect").weakMapMemoize;
  memoize: typeof import("reselect").weakMapMemoize;
};
/**
 * Check if selection is enabled.
 * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
 * @returns {boolean} `true` if selection is enabled, `false` otherwise.
 */
export declare const selectorIsSelectionEnabled: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
  cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
}) => boolean) & {
  clearCache: () => void;
  resultsCount: () => number;
  resetResultsCount: () => void;
} & {
  resultFunc: (resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => boolean;
  memoizedResultFunc: ((resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => boolean) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  };
  lastResult: () => boolean;
  dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
  recomputations: () => number;
  resetRecomputations: () => void;
  dependencyRecomputations: () => number;
  resetDependencyRecomputations: () => void;
} & {
  argsMemoize: typeof import("reselect").weakMapMemoize;
  memoize: typeof import("reselect").weakMapMemoize;
};
/**
 * Check if checkbox selection is enabled.
 * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
 * @returns {boolean} `true` if checkbox selection is enabled, `false` otherwise.
 */
export declare const selectorIsCheckboxSelectionEnabled: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
  cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
}) => boolean) & {
  clearCache: () => void;
  resultsCount: () => number;
  resetResultsCount: () => void;
} & {
  resultFunc: (resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => boolean;
  memoizedResultFunc: ((resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => boolean) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  };
  lastResult: () => boolean;
  dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
  recomputations: () => number;
  resetRecomputations: () => void;
  dependencyRecomputations: () => number;
  resetDependencyRecomputations: () => void;
} & {
  argsMemoize: typeof import("reselect").weakMapMemoize;
  memoize: typeof import("reselect").weakMapMemoize;
};
/**
 * Check if selection is enabled for an item (if selection is enabled and if the item is not disabled).
 * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
 * @param {string} itemId The id of the item to check.
 * @returns {boolean} `true` if selection is enabled for the item, `false` otherwise.
 */
export declare const selectorIsItemSelectionEnabled: ((state: any, itemId: string) => boolean) & {
  clearCache: () => void;
  resultsCount: () => number;
  resetResultsCount: () => void;
} & {
  resultFunc: (resultFuncArgs_0: boolean, resultFuncArgs_1: boolean) => boolean;
  memoizedResultFunc: ((resultFuncArgs_0: boolean, resultFuncArgs_1: boolean) => boolean) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  };
  lastResult: () => boolean;
  dependencies: [((state: any, itemId: string) => boolean) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  } & {
    resultFunc: (resultFuncArgs_0: {
      [itemId: string]: import("../../index.js").TreeViewItemMeta;
    }, resultFuncArgs_1: string) => boolean;
    memoizedResultFunc: ((resultFuncArgs_0: {
      [itemId: string]: import("../../index.js").TreeViewItemMeta;
    }, resultFuncArgs_1: string) => boolean) & {
      clearCache: () => void;
      resultsCount: () => number;
      resetResultsCount: () => void;
    };
    lastResult: () => boolean;
    dependencies: [((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("../useTreeViewItems/index.js").UseTreeViewItemsState<import("../../../index.js").TreeViewDefaultItemModelProperties> & Partial<{}> & {
      cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
    }) => {
      [itemId: string]: import("../../index.js").TreeViewItemMeta;
    }) & {
      clearCache: () => void;
      resultsCount: () => number;
      resetResultsCount: () => void;
    } & {
      resultFunc: (resultFuncArgs_0: {
        disabledItemsFocusable: boolean;
        itemModelLookup: {
          [itemId: string]: import("../../../index.js").TreeViewBaseItem<import("../../../index.js").TreeViewDefaultItemModelProperties>;
        };
        itemMetaLookup: {
          [itemId: string]: import("../../index.js").TreeViewItemMeta;
        };
        itemOrderedChildrenIdsLookup: {
          [parentItemId: string]: string[];
        };
        itemChildrenIndexesLookup: {
          [parentItemId: string]: {
            [itemId: string]: number;
          };
        };
        loading: boolean;
        error: Error | null;
      }) => {
        [itemId: string]: import("../../index.js").TreeViewItemMeta;
      };
      memoizedResultFunc: ((resultFuncArgs_0: {
        disabledItemsFocusable: boolean;
        itemModelLookup: {
          [itemId: string]: import("../../../index.js").TreeViewBaseItem<import("../../../index.js").TreeViewDefaultItemModelProperties>;
        };
        itemMetaLookup: {
          [itemId: string]: import("../../index.js").TreeViewItemMeta;
        };
        itemOrderedChildrenIdsLookup: {
          [parentItemId: string]: string[];
        };
        itemChildrenIndexesLookup: {
          [parentItemId: string]: {
            [itemId: string]: number;
          };
        };
        loading: boolean;
        error: Error | null;
      }) => {
        [itemId: string]: import("../../index.js").TreeViewItemMeta;
      }) & {
        clearCache: () => void;
        resultsCount: () => number;
        resetResultsCount: () => void;
      };
      lastResult: () => {
        [itemId: string]: import("../../index.js").TreeViewItemMeta;
      };
      dependencies: [TreeViewRootSelector<import("../useTreeViewItems/index.js").UseTreeViewItemsSignature>];
      recomputations: () => number;
      resetRecomputations: () => void;
      dependencyRecomputations: () => number;
      resetDependencyRecomputations: () => void;
    } & {
      argsMemoize: typeof import("reselect").weakMapMemoize;
      memoize: typeof import("reselect").weakMapMemoize;
    }, (_: any, itemId: string) => string];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
  } & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
  }, ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
    cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
  }) => boolean) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  } & {
    resultFunc: (resultFuncArgs_0: {
      selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
      isEnabled: boolean;
      isMultiSelectEnabled: boolean;
      isCheckboxSelectionEnabled: boolean;
      selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
    }) => boolean;
    memoizedResultFunc: ((resultFuncArgs_0: {
      selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
      isEnabled: boolean;
      isMultiSelectEnabled: boolean;
      isCheckboxSelectionEnabled: boolean;
      selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
    }) => boolean) & {
      clearCache: () => void;
      resultsCount: () => number;
      resetResultsCount: () => void;
    };
    lastResult: () => boolean;
    dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
    recomputations: () => number;
    resetRecomputations: () => void;
    dependencyRecomputations: () => number;
    resetDependencyRecomputations: () => void;
  } & {
    argsMemoize: typeof import("reselect").weakMapMemoize;
    memoize: typeof import("reselect").weakMapMemoize;
  }];
  recomputations: () => number;
  resetRecomputations: () => void;
  dependencyRecomputations: () => number;
  resetDependencyRecomputations: () => void;
} & {
  argsMemoize: typeof import("reselect").weakMapMemoize;
  memoize: typeof import("reselect").weakMapMemoize;
};
/**
 * Get the selection propagation rules.
 * @param {TreeViewState<[UseTreeViewSelectionSignature]>} state The state of the tree view.
 * @returns {TreeViewSelectionPropagation} The selection propagation rules.
 */
export declare const selectorSelectionPropagationRules: ((state: import("../../corePlugins/useTreeViewId/useTreeViewId.types.js").UseTreeViewIdState & import("./useTreeViewSelection.types.js").UseTreeViewSelectionState & Partial<{}> & {
  cacheKey: import("../../models/index.js").TreeViewStateCacheKey;
}) => import("../../../index.js").TreeViewSelectionPropagation) & {
  clearCache: () => void;
  resultsCount: () => number;
  resetResultsCount: () => void;
} & {
  resultFunc: (resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => import("../../../index.js").TreeViewSelectionPropagation;
  memoizedResultFunc: ((resultFuncArgs_0: {
    selectedItems: import("./useTreeViewSelection.types.js").TreeViewSelectionValue<boolean>;
    isEnabled: boolean;
    isMultiSelectEnabled: boolean;
    isCheckboxSelectionEnabled: boolean;
    selectionPropagation: import("../../../index.js").TreeViewSelectionPropagation;
  }) => import("../../../index.js").TreeViewSelectionPropagation) & {
    clearCache: () => void;
    resultsCount: () => number;
    resetResultsCount: () => void;
  };
  lastResult: () => import("../../../index.js").TreeViewSelectionPropagation;
  dependencies: [TreeViewRootSelector<UseTreeViewSelectionSignature>];
  recomputations: () => number;
  resetRecomputations: () => void;
  dependencyRecomputations: () => number;
  resetDependencyRecomputations: () => void;
} & {
  argsMemoize: typeof import("reselect").weakMapMemoize;
  memoize: typeof import("reselect").weakMapMemoize;
};