import type { SchemaDefinition, PropertyValueSpecification } from '../core/ontology/types.js';
import type { TrellisKernel } from '../core/kernel/trellis-kernel.js';
import type { LockfileData, LockedSchema } from './lockfile.js';
import type { RegistryClient } from './client.js';
export interface SchemaDiff {
    schemaId: string;
    oldVersion: string;
    newVersion: string;
    addedFields: PropertyValueSpecification[];
    removedFields: PropertyValueSpecification[];
    changedFields: Array<{
        name: string;
        from: string;
        to: string;
    }>;
    compatible: boolean;
    reason?: string;
}
export interface MigrationReport {
    migrated: string[];
    skipped: string[];
    incompatible: string[];
    errors: string[];
}
export declare function compareSchemas(current: SchemaDefinition, pinned: LockedSchema, newFields?: PropertyValueSpecification[]): SchemaDiff;
export declare function applyMigration(kernel: TrellisKernel, diff: SchemaDiff, newFields?: PropertyValueSpecification[]): void;
export declare function migrateLockfileSchemas(kernel: TrellisKernel, lockfile: LockfileData, client?: RegistryClient, scopeFilter?: string, dryRun?: boolean): MigrationReport;
export declare function createMigrateHandler(rootPath: string, kernel: TrellisKernel, client?: RegistryClient, scope?: string, dryRun?: boolean): MigrationReport;
//# sourceMappingURL=migrate.d.ts.map