import type { ResourceNode, RolePermissions, PermissionInheritanceInfo, InheritanceMap, MatrixFilters } from '@/components/platform/administration/permissions/types';
export interface UseEntityPermissionsOptions<TRole, TEntity = unknown> {
    entityId: string;
    tenantId?: string;
    loadEntity: (id: string) => Promise<TEntity>;
    loadRoles: (id: string, tenantId?: string) => Promise<TRole[]>;
}
export interface UseEntityPermissionsResult<TRole, TEntity = unknown> {
    loading: boolean;
    error: string | null;
    entity: TEntity | null;
    roles: TRole[];
    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) => TRole[];
    reloadData: () => Promise<void>;
    isTenantMode: boolean;
}
export declare function useEntityPermissions<TRole extends {
    id: string;
}, TEntity = unknown>(options: UseEntityPermissionsOptions<TRole, TEntity>): UseEntityPermissionsResult<TRole, TEntity>;
//# sourceMappingURL=useEntityPermissions.d.ts.map