import type { RoleDto, UserDetailDto } from '@/services/api/adminApi';
import type { ResourceNode, RolePermissions, PermissionInheritanceInfo, InheritanceMap, MatrixFilters } from '@/components/admin/permissions/types';
export interface UseUserPermissionsOptions {
    userId: string;
}
export interface UseUserPermissionsResult {
    loading: boolean;
    error: string | null;
    user: UserDetailDto | null;
    userRoles: RoleDto[];
    resources: ResourceNode[];
    assignments: RolePermissions;
    inheritanceMap: InheritanceMap;
    effectivePermissions: Set<string>;
    filters: MatrixFilters;
    filteredResources: ResourceNode[];
    contexts: string[];
    applications: {
        context: string;
        app: string;
        label: string;
    }[];
    modules: {
        context: string;
        app: string;
        module: string;
        label: string;
    }[];
    updateFilters: (filters: Partial<MatrixFilters>) => void;
    getPermissionInheritance: (roleId: string, permissionId: string) => PermissionInheritanceInfo;
    getPermissionSources: (permissionId: string) => RoleDto[];
    reloadData: () => Promise<void>;
}
export declare function useUserPermissions(options: UseUserPermissionsOptions): UseUserPermissionsResult;
//# sourceMappingURL=useUserPermissions.d.ts.map