import { DatabaseConfig, ExecutionsConfig } from '@n8n/config'; import type { CreateExecutionPayload, ExecutionDataStorageLocation, ExecutionDeletionCriteria, FindManyOptions, FindOptionsWhere, IExecutionBase, IExecutionFlattedDb, IExecutionResponse, UpdateExecutionConditions } from '@n8n/db'; import { ExecutionEntity, ExecutionRepository } from '@n8n/db'; import { BinaryDataService, ErrorReporter, StorageConfig } from 'n8n-core'; import type { ExecutionStatus } from 'n8n-workflow'; import { DbStore } from './execution-data/db-store'; import { ExecutionDataJsonStore } from './execution-data/execution-data-json-store'; import type { ExecutionRef } from './execution-data/types'; import { EventService } from '../events/event.service'; type DeletionTarget = ExecutionRef & { storedAt: ExecutionDataStorageLocation; }; export declare class ExecutionPersistence { private readonly executionRepository; private readonly binaryDataService; private readonly jsonStore; private readonly dbStore; private readonly storageConfig; private readonly executionsConfig; private readonly databaseConfig; private readonly errorReporter; private readonly eventService; private static readonly bulkDeletionBatchSize; private static readonly maxBulkDeletionBatchesPerRun; constructor(executionRepository: ExecutionRepository, binaryDataService: BinaryDataService, jsonStore: ExecutionDataJsonStore, dbStore: DbStore, storageConfig: StorageConfig, executionsConfig: ExecutionsConfig, databaseConfig: DatabaseConfig, errorReporter: ErrorReporter, eventService: EventService); create(payload: CreateExecutionPayload): Promise; private reclaimTombstone; private deleteReclaimedTombstoneData; updateExistingExecution(executionId: string, execution: Partial, conditions?: UpdateExecutionConditions): Promise; findSingleExecution(id: string, options?: { includeData: true; includeAnnotation?: boolean; unflattenData: true; where?: FindOptionsWhere; maxDataSizeBytes?: number; }): Promise; findSingleExecution(id: string, options?: { includeData: true; includeAnnotation?: boolean; unflattenData?: false | undefined; where?: FindOptionsWhere; }): Promise; findSingleExecution(id: string, options?: { includeData?: boolean; includeAnnotation?: boolean; unflattenData?: boolean; where?: FindOptionsWhere; maxDataSizeBytes?: number; }): Promise; findMultipleExecutions(queryParams: FindManyOptions, options?: { unflattenData: true; includeData?: true; maxDataSizeBytes?: number; }): Promise; findMultipleExecutions(queryParams: FindManyOptions, options?: { unflattenData?: false | undefined; includeData?: true; }): Promise; findMultipleExecutions(queryParams: FindManyOptions, options?: { unflattenData?: boolean; includeData?: boolean; maxDataSizeBytes?: number; }): Promise; findWithUnflattenedData(executionId: string, accessibleWorkflowIds: string[]): Promise; findIfSharedUnflatten(executionId: string, sharedWorkflowIds: string[], maxDataSizeBytes?: number): Promise; getExecutionInWorkflowsForPublicApi(id: string, workflowIds: string[], includeData?: boolean, maxDataSizeBytes?: number): Promise; getExecutionsForPublicApi(params: { limit: number; includeData?: boolean; lastId?: string; workflowIds?: string[]; status?: ExecutionStatus; excludedExecutionsIds?: string[]; }, maxDataSizeBytes?: number): Promise; deleteInFlightExecution(target: DeletionTarget): Promise; hardDelete(target: DeletionTarget | DeletionTarget[]): Promise; hardDeleteBy(criteria: ExecutionDeletionCriteria): Promise; hardDeleteByWorkflowId(workflowId: string): Promise; private maxBulkDeletionBatches; private estimateExecutionsTableSize; private toBlobRefs; private updateEntityOnly; private applyDataUpdate; private pickUpdatableEntityColumns; private buildEntityWhereCondition; private trackRead; private trackWrite; private writeData; private readData; private toWorkflowSnapshot; private assembleExecution; private maxDisplayDataSize; private isKnownOversize; private assembleSkippedExecution; private assembleOversizedExecution; private skipOversizedEntities; private assembleReadExecution; private parseExecutionData; private serializeAnnotation; private isDuplicateExecutionError; } export {};