import type { Permission, TeamRole } from './types';
/**
 * Hook to check a single permission in the current team
 *
 * @param permission - Permission ID to check (e.g., "customers.create")
 * @returns true if the current user has the permission in the current team
 *
 * @example
 * ```tsx
 * const canCreate = usePermission('customers.create')
 *
 * return canCreate ? <CreateButton /> : null
 * ```
 */
export declare function usePermission(permission: Permission): boolean;
/**
 * Hook to check multiple permissions
 *
 * @param permissions - Object mapping keys to permission IDs
 * @returns Object with same keys, values are boolean (has permission or not)
 *
 * @example
 * ```tsx
 * const { canCreate, canDelete } = usePermissions({
 *   canCreate: 'customers.create',
 *   canDelete: 'customers.delete',
 * })
 *
 * return (
 *   <>
 *     {canCreate && <CreateButton />}
 *     {canDelete && <DeleteButton />}
 *   </>
 * )
 * ```
 */
export declare function usePermissions<T extends Record<string, Permission>>(permissions: T): Record<keyof T, boolean>;
/**
 * Hook to get all permissions of the current user in the current team
 *
 * @returns Array of permission IDs the user has
 *
 * @example
 * ```tsx
 * const permissions = useAllPermissions()
 * console.log('User has', permissions.length, 'permissions')
 * ```
 */
export declare function useAllPermissions(): Permission[];
/**
 * Hook to get the current user's team role
 *
 * @returns Team role (owner, admin, member, viewer) or null if no team
 *
 * @example
 * ```tsx
 * const role = useTeamRole()
 * return <Badge>{role}</Badge>
 * ```
 */
export declare function useTeamRole(): TeamRole | null;
//# sourceMappingURL=hooks.d.ts.map