export type HasAccess = boolean | null; /** * Hook that checks if the current user has a given permission. * * ### When to use * Use `useUserPermission` to conditionally show or hide UI based on a single permission — * delete buttons, admin panels, export actions, or any feature behind an access check. * * ### When not to use * - When you need multiple user fields (name, account, assuming state) or need to check * several permissions at once — use `useCurrentUser`. * - To gate navigation targets — use `hasAccessTo` from `useNavigateInHost`. * * @param requiredPermission - The permission to check for typesafe string. * @returns {boolean} `true` if the user has the permission, `false` otherwise (including while permissions are still loading). * @example * ```tsx * import { useUserPermission } from "@trackunit/react-core-hooks"; * import { accountScope } from "@trackunit/iris-app-api"; * * const DeleteButton = ({ assetId }: { assetId: string }) => { * const canDelete = useUserPermission(accountScope.ACCOUNT_ASSET_DELETE); * * if (!canDelete) { * return null; * } * * return ; * }; * ``` */ export declare const useUserPermission: (requiredPermission: TPermission) => HasAccess;