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;