import type { HasAccessToOptions } from "@trackunit/iris-app-runtime-core-api"; export type MultipleCriteriaOneOf = { readonly oneOf: Array; }; export type MultipleCriteriaRequireAll = { readonly requireAll: Array; }; type AccessOptions = HasAccessToOptions | MultipleCriteriaOneOf | MultipleCriteriaRequireAll; type UseHasAccessToResult = { readonly hasAccess: boolean | undefined; readonly loading: boolean; readonly error: Error | undefined; }; /** * Hook to check if the current user has access to a navigation target. * Useful for conditionally rendering links based on user permissions. * * Supports single checks, `oneOf` (any match), and `requireAll` (every match) criteria. * * **When to use:** * - Use `useHasAccessTo` to conditionally show/hide navigation links or action buttons * based on whether the user can reach the target page or entity. * - Use `useUserPermission` instead when you need a synchronous check against a * permission string on the user object rather than a navigation-target check. * - Use the `hasAccessTo` method from `useNavigateInHost` for a one-off imperative * check (e.g. inside an event handler) rather than a reactive/rendered result. * * @requires NavigationContext * @example * import { useHasAccessTo } from "@trackunit/react-core-hooks"; * useHasAccessTo({ assetId: assetInfo?.assetId, page: "movement" }) * @see {@link NavigationRuntimeApi} * @see {@link HasAccessToOptions} */ export declare const useHasAccessTo: (options: AccessOptions) => UseHasAccessToResult; export {};