/**
 * Shared permission utilities for wildcard matching and permission checks.
 * Used by both AuthContext and usePermissionMatrix hook.
 */
/**
 * Checks if a wildcard permission path covers a target permission path.
 *
 * Examples:
 * - matchesWildcard('*', 'administration.users.read') => true
 * - matchesWildcard('administration.*', 'administration.users.read') => true
 * - matchesWildcard('administration.users.*', 'administration.users.read') => true
 * - matchesWildcard('administration.users', 'administration.users.read') => false
 *
 * @param wildcardPath - The permission path that may contain wildcards (e.g., "administration.*" or "*")
 * @param targetPath - The specific permission path to check (e.g., "administration.users.read")
 * @returns true if wildcardPath covers targetPath
 */
export declare function matchesWildcard(wildcardPath: string, targetPath: string): boolean;
/**
 * Checks if user has a specific permission based on their permission list.
 * Handles both exact matches and wildcard permissions.
 *
 * @param userPermissions - Array of user's permission paths
 * @param targetPermission - The permission to check
 * @returns true if user has the permission (directly or via wildcard)
 */
export declare function hasPermission(userPermissions: string[], targetPermission: string): boolean;
/**
 * Checks if user has full access (Super Admin).
 * A user has full access if they have the "*" permission or the "Super Administrator" role.
 *
 * @param permissions - User's permission list
 * @param roles - User's role names
 * @returns true if user has full access
 */
export declare function hasFullAccess(permissions: string[], roles: string[]): boolean;
/**
 * Checks if a user has access to a navigation path (route-level permission guard).
 * Mirrors the backend PermissionSet.HasAccessToPath() logic from NavigationService.
 *
 * A path like "administration.users" is accessible if:
 * - User is Super Admin ("*" permission or "Super Administrator" role)
 * - Exact match on the path
 * - Any user permission starts with path + "." (child permission implies parent access)
 *   e.g., having "administration.users.read" grants access to "administration"
 * - A wildcard permission covers the path
 *   e.g., "administration.*" covers "administration.users"
 *
 * @param permissions - User's permission paths
 * @param roles - User's role names
 * @param permissionPrefix - The navigation path to check (e.g., "administration.users")
 * @returns true if user has access to this navigation path
 */
export declare function hasRouteAccess(permissions: string[], roles: string[], permissionPrefix: string): boolean;
//# sourceMappingURL=permissions.d.ts.map