import { SlateValue } from '../types/slate/SlateValue';
export interface MigrationResult {
    changed: boolean;
    migratedState: SlateValue;
    finalVersion: number;
}
/**
 * @class the class used to migrate plugin content between toVersion
 */
export declare class Migration {
    fromVersionMin: number;
    fromVersionMax: number;
    toVersion: number;
    constructor(toVersion: number, fromVersionMin: number, fromVersionMax: number, migrate: (state: SlateValue, version: number) => MigrationResult, shouldMigrate?: (state: SlateValue, version: number) => boolean);
    migrate: (state: SlateValue, version: number) => MigrationResult;
    shouldMigrate: (state: SlateValue, version: number) => boolean;
}
