import type { RoleDto } from '@/services/api/adminApi';
import type { GroupDetailDto } from '@/services/api/groupsApi';
import { useEntityPermissions } from './useEntityPermissions';
import type { PermissionInheritanceInfo } from '@/components/platform/administration/permissions/types';
/**
 * Extended RoleDto with tenant scope information from GroupRoleDto.
 */
export interface GroupRoleWithScope extends RoleDto {
    /** The tenant this role assignment is scoped to (null = global) */
    tenantId: string | null;
    /** The tenant name for display */
    tenantName: string | null;
    /** Whether this is a global role assignment */
    isGlobal: boolean;
}
export interface UseGroupPermissionsOptions {
    groupId: string;
    /** Optional tenant context - when provided, loads tenant-scoped roles */
    tenantId?: string;
}
export interface UseGroupPermissionsResult {
    loading: boolean;
    error: string | null;
    group: GroupDetailDto | null;
    groupRoles: GroupRoleWithScope[];
    resources: ReturnType<typeof useEntityPermissions>['resources'];
    assignments: ReturnType<typeof useEntityPermissions>['assignments'];
    inheritanceMap: ReturnType<typeof useEntityPermissions>['inheritanceMap'];
    effectivePermissions: ReturnType<typeof useEntityPermissions>['effectivePermissions'];
    filters: ReturnType<typeof useEntityPermissions>['filters'];
    filteredResources: ReturnType<typeof useEntityPermissions>['filteredResources'];
    contexts: ReturnType<typeof useEntityPermissions>['contexts'];
    applications: ReturnType<typeof useEntityPermissions>['applications'];
    modules: ReturnType<typeof useEntityPermissions>['modules'];
    updateFilters: ReturnType<typeof useEntityPermissions>['updateFilters'];
    getPermissionInheritance: (roleId: string, permissionId: string) => PermissionInheritanceInfo;
    getPermissionSources: (permissionId: string) => GroupRoleWithScope[];
    reloadData: () => Promise<void>;
    /** Whether we're in tenant-scoped mode */
    isTenantMode: boolean;
}
export declare function useGroupPermissions(options: UseGroupPermissionsOptions): UseGroupPermissionsResult;
//# sourceMappingURL=useGroupPermissions.d.ts.map