export type DbMigrationType = 'relational-to-relational' | 'relational-to-nosql' | 'nosql-to-relational' | 'sql-to-newsql' | 'on-premise-to-cloud';
export interface DbSchema {
    engine: string;
    orm?: string;
    tables: DbTableInfo[];
    totalRows?: number;
    estimatedSizeGb?: number;
}
export interface DbTableInfo {
    name: string;
    columns: DbColumnInfo[];
    indexes: string[];
    constraints: string[];
    hasRls: boolean;
    hasTriggers: boolean;
}
export interface DbColumnInfo {
    name: string;
    type: string;
    nullable: boolean;
    defaultValue?: string;
}
export interface DbTypeMapping {
    sourceType: string;
    targetType: string;
    transformation?: string;
    dataLossRisk: boolean;
    dataLossNote?: string;
}
export interface DbMigrationMap {
    sourceEngine: string;
    targetEngine: string;
    migrationType: DbMigrationType;
    typeMappings: DbTypeMapping[];
    structuralTransformations: string[];
    warnings: string[];
    unmigratableFeatures: string[];
    generatedAt: string;
}
export interface DbMigrationPhase {
    order: number;
    name: 'schema' | 'data-batches' | 'indexes' | 'validation';
    description: string;
    estimatedMinutes: number;
    rollbackStrategy: string;
}
export interface DualWriteStrategy {
    description: string;
    steps: string[];
    validationQueries: string[];
    cutoverCondition: string;
}
export interface DbMigrationPlan {
    sourceEngine: string;
    targetEngine: string;
    phases: DbMigrationPhase[];
    estimatedDowntimeMinutes: number;
    rollbackPlan: string;
    dualWriteStrategy?: DualWriteStrategy;
    unmigratableData: string[];
    generatedAt: string;
}
export interface TypeMappingEntry {
    sourceType: string;
    targetType: string;
    transformation?: string;
    dataLossRisk: boolean;
    dataLossNote?: string;
}
//# sourceMappingURL=database.d.ts.map