import type { BaseDependencies } from '../config/config.js';
import { type MigrationRecordWithRelations } from '../repository/dictionaryMigrationRepository.js';
import { type MigrationSummary } from '../utils/migrationResponseFormatter.js';
import { type AsyncResult, type PaginatedResult } from '../utils/result.js';
import type { MigrationAuditRecord, MigrationStatus, PaginationOptions } from '../utils/types.js';
declare const migrationService: (dependencies: BaseDependencies) => {
    finalizeMigration: ({ migrationId, status, userName, }: {
        migrationId: number;
        status: Extract<MigrationStatus, "COMPLETED" | "FAILED">;
        userName: string;
    }) => AsyncResult<null, string>;
    getActiveMigrationByCategoryId: (categoryId: number) => Promise<MigrationRecordWithRelations | null>;
    getMigrationsByCategoryId: (categoryId: number, paginationOptions: PaginationOptions) => Promise<PaginatedResult<MigrationSummary>>;
    getMigrationById: (migrationId: number) => Promise<MigrationSummary | null>;
    getMigrationRecords: (migrationId: number, options: {
        page: number;
        pageSize: number;
        entityNames?: string | string[];
        organizations?: string | string[];
        isInvalid?: boolean;
    }) => Promise<PaginatedResult<MigrationAuditRecord>>;
    initiateMigration: ({ categoryId, fromDictionaryId, toDictionaryId, userName, }: {
        categoryId: number;
        fromDictionaryId: number;
        toDictionaryId: number;
        userName: string;
    }) => AsyncResult<number, string>;
    performMigrationValidation: ({ migrationId, userName, }: {
        migrationId: number;
        userName: string;
    }) => AsyncResult<null, string>;
};
export default migrationService;
