import { AuthorizationAgentFactory, CRUDAuthorizationRegistry, DataAuthorizationData, ImmutableDataAuthorization, ReadableAccessAuthorization } from '@janeirodigital/interop-data-model'; export type NestedDataAuthorizationData = DataAuthorizationData & { children?: DataAuthorizationData[]; }; interface BaseAuthorization { grantee: string; hasAccessNeedGroup?: string; } export interface GrantedAuthorization extends BaseAuthorization { dataAuthorizations: DataAuthorizationData[]; granted: true; } export interface DeniedAuthorization extends BaseAuthorization { dataAuthorizations?: never; granted: false; } export type AccessAuthorizationStructure = GrantedAuthorization | DeniedAuthorization; export declare function generateDataAuthorizations(dataAuthorizations: NestedDataAuthorizationData[], grantedBy: string, authorizationRegistry: CRUDAuthorizationRegistry, factory: AuthorizationAgentFactory): Promise; export declare function generateAuthorization(authorization: AccessAuthorizationStructure, grantedBy: string, authorizationRegistry: CRUDAuthorizationRegistry, agentId: string, factory: AuthorizationAgentFactory, extendIfExists: boolean): Promise; export {}; //# sourceMappingURL=authorization.d.ts.map