import { ErrorType, type ErrorFromResult, type OkFromResult, type PromiseResult, type Result } from '../ErrorResult.js'; import type { ChangelogEvent, ChangelogEventQuery, ChangelogEventSharedQuery } from '../events/EventTypes.js'; import type { SchemaSpecification, SchemaSpecificationUpdate, SchemaSpecificationUpdatePayload, SchemaSpecificationWithMigrations } from '../schema/SchemaSpecification.js'; import type { AdvisoryLockOptions, AdvisoryLockPayload, AdvisoryLockReleasePayload, Component, Connection, Edge, Entity, EntityArchivePayload, EntityCreate, EntityCreatePayload, EntityDeletePayload, EntityMutationOptions, EntityProcessDirtyPayload, EntityPublishPayload, EntityQuery, EntityReference, EntitySamplingOptions, EntitySamplingPayload, EntitySharedQuery, EntityUnarchivePayload, EntityUnpublishPayload, EntityUpdate, EntityUpdatePayload, EntityUpsert, EntityUpsertPayload, EntityVersionReference, Paging, UniqueIndexReference } from '../Types.js'; import type { LooseAutocomplete } from '../utils/TypeUtils.js'; import { type ClientContext, type ContextProvider, type Middleware, type Operation } from './SharedClient.js'; export interface DossierClient = Entity, TComponent extends Component = Component, TUniqueIndex extends string = string, TExceptionClient extends DossierExceptionClient = DossierExceptionClient> { getSchemaSpecification(options: { includeMigrations: true; }): PromiseResult; getSchemaSpecification(options?: { includeMigrations: boolean; }): PromiseResult; updateSchemaSpecification(schemaSpec: SchemaSpecificationUpdate, options: { includeMigrations: true; }): PromiseResult, typeof ErrorType.BadRequest | typeof ErrorType.Generic>; updateSchemaSpecification(schemaSpec: SchemaSpecificationUpdate, options?: { includeMigrations: boolean; }): PromiseResult; getEntity(reference: EntityReference | EntityVersionReference | UniqueIndexReference): PromiseResult; getEntityList(references: EntityReference[]): PromiseResult[], typeof ErrorType.Generic>; getEntities(query?: EntityQuery, paging?: Paging): PromiseResult> | null, typeof ErrorType.BadRequest | typeof ErrorType.NotAuthorized | typeof ErrorType.Generic>; getEntitiesTotalCount(query?: EntitySharedQuery): PromiseResult; getEntitiesSample(query?: EntitySharedQuery, options?: EntitySamplingOptions): PromiseResult, typeof ErrorType.BadRequest | typeof ErrorType.NotAuthorized | typeof ErrorType.Generic>; createEntity = TEntity>(entity: Readonly>, options?: EntityMutationOptions): PromiseResult, typeof ErrorType.BadRequest | typeof ErrorType.Conflict | typeof ErrorType.NotAuthorized | typeof ErrorType.Generic>; updateEntity = TEntity>(entity: Readonly>, options?: EntityMutationOptions): PromiseResult, typeof ErrorType.BadRequest | typeof ErrorType.NotFound | typeof ErrorType.NotAuthorized | typeof ErrorType.Generic>; upsertEntity = TEntity>(entity: Readonly>, options?: EntityMutationOptions): PromiseResult, typeof ErrorType.BadRequest | typeof ErrorType.NotAuthorized | typeof ErrorType.Generic>; getChangelogEvents(query?: ChangelogEventQuery, paging?: Paging): PromiseResult> | null, typeof ErrorType.BadRequest | typeof ErrorType.NotAuthorized | typeof ErrorType.Generic>; getChangelogEventsTotalCount(query?: ChangelogEventSharedQuery): PromiseResult; publishEntities(references: EntityVersionReference[]): PromiseResult; unpublishEntities(references: EntityReference[]): PromiseResult; archiveEntity(reference: EntityReference): PromiseResult; unarchiveEntity(reference: EntityReference): PromiseResult; deleteEntities(references: EntityReference[]): PromiseResult; processDirtyEntity(reference: EntityReference): PromiseResult; acquireAdvisoryLock(name: string, options: AdvisoryLockOptions): PromiseResult; renewAdvisoryLock(name: string, handle: number): PromiseResult; releaseAdvisoryLock(name: string, handle: number): PromiseResult; toExceptionClient(): TExceptionClient; } export interface DossierExceptionClient = Entity, TComponent extends Component = Component, TUniqueIndex extends string = string> { client: Readonly>; getSchemaSpecification(options: { includeMigrations: true; }): Promise; getSchemaSpecification(options?: { includeMigrations: boolean; }): Promise; updateSchemaSpecification(schemaSpec: SchemaSpecificationUpdate, options: { includeMigrations: true; }): Promise>; updateSchemaSpecification(schemaSpec: SchemaSpecificationUpdate, options?: { includeMigrations: boolean; }): Promise; getEntity(reference: EntityReference | EntityVersionReference | UniqueIndexReference): Promise; getEntityList(references: EntityReference[]): Promise[]>; getEntities(query?: EntityQuery, paging?: Paging): Promise> | null>; getEntitiesTotalCount(query?: EntitySharedQuery): Promise; getEntitiesSample(query?: EntitySharedQuery, options?: EntitySamplingOptions): Promise>; createEntity = TEntity>(entity: EntityCreate, options?: EntityMutationOptions): Promise>; updateEntity = TEntity>(entity: EntityUpdate, options?: EntityMutationOptions): Promise>; upsertEntity = TEntity>(entity: EntityUpsert, options?: EntityMutationOptions): Promise>; getChangelogEvents(query?: ChangelogEventQuery, paging?: Paging): Promise> | null>; getChangelogEventsTotalCount(query?: ChangelogEventQuery): Promise; publishEntities(references: EntityVersionReference[]): Promise; unpublishEntities(references: EntityReference[]): Promise; archiveEntity(reference: EntityReference): Promise; unarchiveEntity(reference: EntityReference): Promise; deleteEntities(references: EntityReference[]): Promise; processDirtyEntity(reference: EntityReference): Promise; acquireAdvisoryLock(name: string, options: AdvisoryLockOptions): Promise; renewAdvisoryLock(name: string, handle: number): Promise; releaseAdvisoryLock(name: string, handle: number): Promise; } export declare const DossierClientOperationName: { readonly acquireAdvisoryLock: "acquireAdvisoryLock"; readonly archiveEntity: "archiveEntity"; readonly createEntity: "createEntity"; readonly deleteEntities: "deleteEntities"; readonly getChangelogEvents: "getChangelogEvents"; readonly getChangelogEventsTotalCount: "getChangelogEventsTotalCount"; readonly getEntities: "getEntities"; readonly getEntitiesSample: "getEntitiesSample"; readonly getEntitiesTotalCount: "getEntitiesTotalCount"; readonly getEntity: "getEntity"; readonly getEntityList: "getEntityList"; readonly getSchemaSpecification: "getSchemaSpecification"; readonly processDirtyEntity: "processDirtyEntity"; readonly publishEntities: "publishEntities"; readonly releaseAdvisoryLock: "releaseAdvisoryLock"; readonly renewAdvisoryLock: "renewAdvisoryLock"; readonly unarchiveEntity: "unarchiveEntity"; readonly unpublishEntities: "unpublishEntities"; readonly updateEntity: "updateEntity"; readonly updateSchemaSpecification: "updateSchemaSpecification"; readonly upsertEntity: "upsertEntity"; }; type DossierClientOperationName = keyof typeof DossierClientOperationName; type MethodParameters, Component> = DossierClient> = Parameters; type MethodReturnTypeWithoutPromise, Component> = DossierClient> = Awaited, MethodReturnTypeError>>; type MethodReturnTypeOk, Component> = DossierClient> = OkFromResult>; type MethodReturnTypeError, Component> = DossierClient> = ErrorFromResult>; interface DossierClientOperationArguments { [DossierClientOperationName.acquireAdvisoryLock]: MethodParameters<'acquireAdvisoryLock'>; [DossierClientOperationName.archiveEntity]: MethodParameters<'archiveEntity'>; [DossierClientOperationName.createEntity]: MethodParameters<'createEntity'>; [DossierClientOperationName.deleteEntities]: MethodParameters<'deleteEntities'>; [DossierClientOperationName.getChangelogEvents]: MethodParameters<'getChangelogEvents'>; [DossierClientOperationName.getChangelogEventsTotalCount]: MethodParameters<'getChangelogEventsTotalCount'>; [DossierClientOperationName.getEntities]: MethodParameters<'getEntities'>; [DossierClientOperationName.getEntitiesSample]: MethodParameters<'getEntitiesSample'>; [DossierClientOperationName.getEntitiesTotalCount]: MethodParameters<'getEntitiesTotalCount'>; [DossierClientOperationName.getEntity]: MethodParameters<'getEntity'>; [DossierClientOperationName.getEntityList]: MethodParameters<'getEntityList'>; [DossierClientOperationName.getSchemaSpecification]: MethodParameters<'getSchemaSpecification'>; [DossierClientOperationName.processDirtyEntity]: MethodParameters<'processDirtyEntity'>; [DossierClientOperationName.publishEntities]: MethodParameters<'publishEntities'>; [DossierClientOperationName.releaseAdvisoryLock]: MethodParameters<'releaseAdvisoryLock'>; [DossierClientOperationName.renewAdvisoryLock]: MethodParameters<'renewAdvisoryLock'>; [DossierClientOperationName.unarchiveEntity]: MethodParameters<'unarchiveEntity'>; [DossierClientOperationName.unpublishEntities]: MethodParameters<'unpublishEntities'>; [DossierClientOperationName.updateEntity]: MethodParameters<'updateEntity'>; [DossierClientOperationName.updateSchemaSpecification]: MethodParameters<'updateSchemaSpecification'>; [DossierClientOperationName.upsertEntity]: MethodParameters<'upsertEntity'>; } interface DossierClientOperationReturnOk { [DossierClientOperationName.acquireAdvisoryLock]: MethodReturnTypeOk<'acquireAdvisoryLock'>; [DossierClientOperationName.archiveEntity]: MethodReturnTypeOk<'archiveEntity'>; [DossierClientOperationName.createEntity]: MethodReturnTypeOk<'createEntity'>; [DossierClientOperationName.deleteEntities]: MethodReturnTypeOk<'deleteEntities'>; [DossierClientOperationName.getChangelogEvents]: MethodReturnTypeOk<'getChangelogEvents'>; [DossierClientOperationName.getChangelogEventsTotalCount]: MethodReturnTypeOk<'getChangelogEventsTotalCount'>; [DossierClientOperationName.getEntities]: MethodReturnTypeOk<'getEntities'>; [DossierClientOperationName.getEntitiesSample]: MethodReturnTypeOk<'getEntitiesSample'>; [DossierClientOperationName.getEntitiesTotalCount]: MethodReturnTypeOk<'getEntitiesTotalCount'>; [DossierClientOperationName.getEntity]: MethodReturnTypeOk<'getEntity'>; [DossierClientOperationName.getEntityList]: MethodReturnTypeOk<'getEntityList'>; [DossierClientOperationName.getSchemaSpecification]: MethodReturnTypeOk<'getSchemaSpecification'>; [DossierClientOperationName.processDirtyEntity]: MethodReturnTypeOk<'processDirtyEntity'>; [DossierClientOperationName.publishEntities]: MethodReturnTypeOk<'publishEntities'>; [DossierClientOperationName.releaseAdvisoryLock]: MethodReturnTypeOk<'releaseAdvisoryLock'>; [DossierClientOperationName.renewAdvisoryLock]: MethodReturnTypeOk<'renewAdvisoryLock'>; [DossierClientOperationName.unarchiveEntity]: MethodReturnTypeOk<'unarchiveEntity'>; [DossierClientOperationName.unpublishEntities]: MethodReturnTypeOk<'unpublishEntities'>; [DossierClientOperationName.updateEntity]: MethodReturnTypeOk<'updateEntity'>; [DossierClientOperationName.updateSchemaSpecification]: MethodReturnTypeOk<'updateSchemaSpecification'>; [DossierClientOperationName.upsertEntity]: MethodReturnTypeOk<'upsertEntity'>; } interface DossierClientOperationReturnError { [DossierClientOperationName.acquireAdvisoryLock]: MethodReturnTypeError<'acquireAdvisoryLock'>; [DossierClientOperationName.archiveEntity]: MethodReturnTypeError<'archiveEntity'>; [DossierClientOperationName.createEntity]: MethodReturnTypeError<'createEntity'>; [DossierClientOperationName.deleteEntities]: MethodReturnTypeError<'deleteEntities'>; [DossierClientOperationName.getChangelogEvents]: MethodReturnTypeError<'getChangelogEvents'>; [DossierClientOperationName.getChangelogEventsTotalCount]: MethodReturnTypeError<'getChangelogEventsTotalCount'>; [DossierClientOperationName.getEntities]: MethodReturnTypeError<'getEntities'>; [DossierClientOperationName.getEntitiesSample]: MethodReturnTypeError<'getEntitiesSample'>; [DossierClientOperationName.getEntitiesTotalCount]: MethodReturnTypeError<'getEntitiesTotalCount'>; [DossierClientOperationName.getEntity]: MethodReturnTypeError<'getEntity'>; [DossierClientOperationName.getEntityList]: MethodReturnTypeError<'getEntityList'>; [DossierClientOperationName.getSchemaSpecification]: MethodReturnTypeError<'getSchemaSpecification'>; [DossierClientOperationName.processDirtyEntity]: MethodReturnTypeError<'processDirtyEntity'>; [DossierClientOperationName.publishEntities]: MethodReturnTypeError<'publishEntities'>; [DossierClientOperationName.releaseAdvisoryLock]: MethodReturnTypeError<'releaseAdvisoryLock'>; [DossierClientOperationName.renewAdvisoryLock]: MethodReturnTypeError<'renewAdvisoryLock'>; [DossierClientOperationName.unarchiveEntity]: MethodReturnTypeError<'unarchiveEntity'>; [DossierClientOperationName.unpublishEntities]: MethodReturnTypeError<'unpublishEntities'>; [DossierClientOperationName.updateEntity]: MethodReturnTypeError<'updateEntity'>; [DossierClientOperationName.updateSchemaSpecification]: MethodReturnTypeError<'updateSchemaSpecification'>; [DossierClientOperationName.upsertEntity]: MethodReturnTypeError<'upsertEntity'>; } export type DossierClientOperation = Operation; export type DossierClientMiddleware = Middleware; export type JsonDossierClientOperationArgs = DossierClientOperationArguments[TName]; export declare const DossierClientModifyingOperations: Readonly>; export declare function createBaseDossierClient, Component> = DossierClient>(option: { context: TContext | ContextProvider; pipeline: DossierClientMiddleware[]; }): TClient; export declare function executeJsonDossierClientOperation(client: DossierClient, Component>, operationName: LooseAutocomplete, operationArgs: JsonDossierClientOperationArgs): PromiseResult; export declare function convertJsonDossierClientResult, Component> = DossierClient>(operationName: TName, jsonResult: Result): MethodReturnTypeWithoutPromise; export {};