import DryRunGraphModelMigrationPlan from '../../../../src/domain/migrations/DryRunGraphModelMigrationPlan.ts';
import DryRunGraphModelMigrationPlanRequest from '../../../../src/domain/migrations/DryRunGraphModelMigrationPlanRequest.ts';
import GenesisEquivalenceComparisonBasis from '../../../../src/domain/migrations/GenesisEquivalenceComparisonBasis.ts';
import GenesisEquivalenceGateResult from '../../../../src/domain/migrations/GenesisEquivalenceGateResult.ts';
import GenesisEquivalenceReading from '../../../../src/domain/migrations/GenesisEquivalenceReading.ts';
import GraphModelMigrationFinalizationConfirmation from '../../../../src/domain/migrations/GraphModelMigrationFinalizationConfirmation.ts';
import GraphModelMigrationFinalizationRequest from '../../../../src/domain/migrations/GraphModelMigrationFinalizationRequest.ts';
import GraphModelMigrationFinalizationResult from '../../../../src/domain/migrations/GraphModelMigrationFinalizationResult.ts';
import GraphModelMigrationOperationLoweringResult from '../../../../src/domain/migrations/GraphModelMigrationOperationLoweringResult.ts';
import GraphModelMigrationRuntimeConformanceResult from '../../../../src/domain/migrations/GraphModelMigrationRuntimeConformanceResult.ts';
import GraphModelMigrationScratchWriteResult from '../../../../src/domain/migrations/GraphModelMigrationScratchWriteResult.ts';
export type GraphModelMigrationRuntimeConformanceProvider = (scratchWriteResult: GraphModelMigrationScratchWriteResult) => Promise<GraphModelMigrationRuntimeConformanceResult | null>;
export type GraphModelMigrationCommandReadingProviders = {
    readonly legacyReading: () => Promise<GenesisEquivalenceReading>;
    readonly scratchReading: (scratchWriteResult: GraphModelMigrationScratchWriteResult) => Promise<GenesisEquivalenceReading>;
};
export type GraphModelMigrationCommandFinalizationOptions = {
    readonly liveRefName: string;
    readonly expectedLiveHead: string;
    readonly archiveRefName: string;
    readonly confirmation: GraphModelMigrationFinalizationConfirmation | null;
    readonly runtimeConformance: GraphModelMigrationRuntimeConformanceProvider | null;
    readonly reviewedRequest?: GraphModelMigrationFinalizationRequest | null;
};
export type GraphModelMigrationCommandOptions = {
    readonly repositoryPath: string;
    readonly dryRunRequest: DryRunGraphModelMigrationPlanRequest;
    readonly scratchRefName: string;
    readonly equivalenceBasis: GenesisEquivalenceComparisonBasis;
    readonly legacyReading: GenesisEquivalenceReading | null;
    readonly scratchReading: GenesisEquivalenceReading | null;
    readonly readingProviders: GraphModelMigrationCommandReadingProviders | null;
    readonly finalization: GraphModelMigrationCommandFinalizationOptions | null;
};
/** Result of the wired v18 graph-model migration command flow. */
export declare class GraphModelMigrationCommandResult {
    readonly dryRunPlan: DryRunGraphModelMigrationPlan;
    readonly loweringResult: GraphModelMigrationOperationLoweringResult;
    readonly scratchWriteResult: GraphModelMigrationScratchWriteResult | null;
    readonly gateResult: GenesisEquivalenceGateResult | null;
    readonly finalizationResult: GraphModelMigrationFinalizationResult | null;
    constructor(dryRunPlan: DryRunGraphModelMigrationPlan, loweringResult: GraphModelMigrationOperationLoweringResult, scratchWriteResult: GraphModelMigrationScratchWriteResult | null, gateResult: GenesisEquivalenceGateResult | null, finalizationResult: GraphModelMigrationFinalizationResult | null);
}
export declare class GraphModelMigrationCommandError extends Error {
    constructor(message: string);
}
/** Runs dry-run planning, lowering, scratch writing, equivalence, and optional finalization. */
export declare function runGraphModelMigrationCommand(options: GraphModelMigrationCommandOptions): Promise<GraphModelMigrationCommandResult>;
