import type { MigrateFrom, MigrationPipelineResult } from "./component-data-migration.js";
import type { MutationWriteResult, MutationWriteSummary } from "./write-summary.js";
import type { PublishLanguagesOption } from "../stories/stories.types.js";
import type { RequestBaseConfig } from "../utils/request.js";
type MigrationRunLogEvent = "update_success" | "update_failed" | "publish_success" | "publish_failed" | "publish_skipped" | "migration_write_summary";
export interface MigrationRunLogRecord {
    timestamp: string;
    event: MigrationRunLogEvent;
    runId: string;
    itemType: "story" | "preset";
    source: {
        migrateFrom: MigrateFrom;
        from: string;
        fromFilePath: string | null;
    };
    target: {
        to: string;
    };
    writeMode: "publish" | "save";
    publishLanguages?: {
        requested?: PublishLanguagesOption;
        resolved?: string[];
    };
    dryRun: boolean;
    migrationConfigs: string[];
    totalItems: number;
    totalChangedItems: number;
    writeSummary?: {
        total: number;
        successful: number;
        failed: number;
        failedItems: Array<{
            id?: number | string;
            name?: string;
            slug?: string;
            spaceId?: string;
            status?: number | string;
            response?: string | null;
            stage?: "update" | "publish";
            sourcePublishState?: string;
            publishSkippedReason?: string;
        }>;
    };
    item?: {
        index: number;
        id?: number | string;
        name?: string;
        slug?: string;
        spaceId?: string;
    };
    status?: number | string | null;
    response?: string | null;
    stage?: "update" | "publish";
    sourcePublishState?: string;
    publishSkippedReason?: string;
    error?: unknown;
}
interface SaveMigrationRunLogArgs {
    artifactBaseName: string;
    useDatestamp: boolean;
    from: string;
    to: string;
    itemType: "story" | "preset";
    dryRun?: boolean;
    publish?: boolean;
    publishLanguages?: PublishLanguagesOption;
    resolvedPublishLanguages?: string[];
    migrateFrom: MigrateFrom;
    fromFilePath?: string;
    pipelineResult: MigrationPipelineResult;
    writeResults: PromiseSettledResult<MutationWriteResult>[];
    writeSummary: MutationWriteSummary;
}
export declare const buildMigrationRunLogRecords: ({ from, to, itemType, dryRun, publish, publishLanguages, resolvedPublishLanguages, migrateFrom, fromFilePath, pipelineResult, writeResults, writeSummary, }: Omit<SaveMigrationRunLogArgs, "artifactBaseName" | "useDatestamp">) => MigrationRunLogRecord[];
export declare const recordsToJsonl: (records: MigrationRunLogRecord[]) => string;
export declare const saveMigrationRunLog: (args: SaveMigrationRunLogArgs, config: RequestBaseConfig) => Promise<void>;
export {};
