import { EntityDict, Aspect, AuthDeduceRelationMap } from 'oak-domain/lib/types'; import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain'; import { CommonAspectDict } from 'oak-common-aspect'; import { Feature } from '../types/Feature'; import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore'; import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore'; import { Cache } from './cache'; export declare class RelationAuth, FrontCxt extends FrontendRuntimeContext, AD extends CommonAspectDict & Record>> extends Feature { private cache; private baseRelationAuth; private authDeduceRelationMap; static IgnoredActions: string[]; private entityGraph?; constructor(cache: Cache, authDeduceRelationMap: AuthDeduceRelationMap, selectFreeEntities?: (keyof ED)[], updateFreeDict?: { [A in keyof ED]?: string[]; }); getHasRelationEntities(): string[]; getDeduceRelationAttribute(entity: keyof ED): string | undefined; buildEntityGraph(): void; getEntityGraph(): { data: { name: string; }[]; links: { source: string; target: string; value: number; }[]; }; getAllEntities(): string[]; getActions(entity: keyof ED): string[]; hasRelation(entity: keyof ED): boolean; getRelations(entity: keyof ED): string[] | undefined; getCascadeActionEntitiesBySource(entity: keyof ED): { path: string; actions: string[]; }[]; getCascadeActionAuths(entity: keyof ED, ir: boolean): [string, string, string, boolean][]; getCascadeRelationAuthsBySource(entity: keyof ED): [string, string, string, boolean][]; getCascadeRelationAuths(entity: keyof ED, ir: boolean): [string, string, string, boolean][]; checkRelation(entity: T, operation: Omit): boolean; getRelationIdByName(entity: keyof ED, name: string, entityId?: string): Promise; }