import { Permission, ProjectRoles } from "@vertesia/common";
import { UserSession } from "@vertesia/ui/session";
type ListRolesResponse = {
    name: ProjectRoles;
    permissions: Permission[];
}[];
export declare class UserPermissions {
    system_roles: ListRolesResponse;
    roles: Set<string>;
    permissions: Set<string>;
    constructor(session: UserSession, roles: ListRolesResponse);
    hasPermission(permission: string | string[]): boolean;
}
declare const UserPermissionsContext: import("react").Context<UserPermissions | undefined>;
export { UserPermissionsContext };
export declare function useUserPermissions(): UserPermissions;
interface UserPermissionProviderProps {
    children: React.ReactNode;
}
export declare function UserPermissionProvider({ children }: UserPermissionProviderProps): import("react/jsx-runtime").JSX.Element | undefined;
//# sourceMappingURL=UserPermissionsProvider.d.ts.map