import { ZodTypeAny } from 'zod'; import DynamoDBService from '../aws/helpers/dynamoDB/dynamoDBService'; import PaginatedResponse from '../interfaces/paginatedResponse'; import JSONValue from '../types/json'; export declare class MetadataService { private readonly _ddbService; constructor(ddbService: DynamoDBService); /************************************************************ * Retrieves metadata relationships related to entity and metadata related to dependencies * @param mainEntityRequest - main Entity request object * @param dependencies - array of dependencies * @param mainMetadataMapper - function that parses main entity request and dependency entity to main entity metadata * @param dependencyMetadataMapper - function that parses main entity request and dependency entity to dependency metadata * @returns object containing main entity metadata and dependency metadata ************************************************************/ getMetadataItems(mainEntityRequest: EntityRequest, dependencies: DependencyEntity[], mainMetadataMapper: (mainEntityRequest: EntityRequest, dependencyEntity: DependencyEntity) => MainEntityMetadata, dependencyMetadataMapper?: (mainEntityRequest: EntityRequest, dependencyEntity: DependencyEntity) => DependencyMetadata): { mainEntityMetadata: MainEntityMetadata[]; dependencyMetadata: DependencyMetadata[]; }; /** * * @param mainEntityResourceType - main entity resource type * @param mainEntityId - main entity id * @param dependencyResourceType - dependency resource type * @param parser - Zod parser for metadata object * @param queryParams - parameters to query metadata. Supported page size and pagination token. * @returns object containing list of metadata objects and continuation token. */ listDependentMetadata(mainEntityResourceType: string, mainEntityId: string, dependencyResourceType: string, parser: ZodTypeAny, queryParams?: { pageSize?: number; paginationToken?: string; }): Promise>; updateRelationship(mainEntityResourceType: string, mainEntity: { id: string; data?: Record; }, dependencyResourceType: string, dependencies: { id: string; data?: Record; }[]): Promise; deleteRelationships(mainEntityResourceType: string, mainEntityId: string, dependencyResourceType: string, dependentIds: string[]): Promise; /** * Retrieves a single instance of dependency metadata by Ids * @param mainEntityResourceType - main entity resource type * @param mainEntityId - main entity id * @param dependencyResourceType - dependency resource type * @param dependencyId - dependency entity id * @param parser - Zod parser for metadata object * @returns object with metadata information */ getMetadataItem(mainEntityResourceType: string, mainEntityId: string, dependencyResourceType: string, dependencyId: string, parser: ZodTypeAny): Promise; } //# sourceMappingURL=metadataService.d.ts.map