import type { Dialect } from "./schemaValidator";
import { NamedWithSchema } from "./cli/commands/migrate";
export declare const assertV1OutFolder: (out: string, dialect: Dialect | "{dialect}") => void;
export type Journal = {
    version: string;
    dialect: Dialect;
    entries: {
        idx: number;
        version: string;
        when: number;
        tag: string;
        breakpoints: boolean;
    }[];
};
export declare const dryJournal: (dialect: Dialect) => Journal;
export declare const snapshotsPriorV4: (out: string) => string[];
export declare const prepareOutFolder: (out: string, dialect: Dialect) => {
    meta: string;
    snapshots: string[];
    journal: any;
};
export declare const validateWithReport: (snapshots: string[], dialect: Dialect) => {
    malformed: string[];
    nonLatest: string[];
    idsMap: Record<string, {
        parent: string;
        snapshots: string[];
    }>;
    rawMap: Record<string, any>;
};
export declare const prepareMigrationFolder: (outFolder: string | undefined, dialect: Dialect) => {
    snapshots: string[];
    journal: any;
};
export declare const prepareMigrationMeta: (schemas: {
    from: string;
    to: string;
}[], tables: {
    from: NamedWithSchema;
    to: NamedWithSchema;
}[], columns: {
    from: {
        table: string;
        schema: string;
        column: string;
    };
    to: {
        table: string;
        schema: string;
        column: string;
    };
}[]) => {
    schemas: {};
    tables: {};
    columns: {};
};
export declare const schemaRenameKey: (it: string) => string;
export declare const tableRenameKey: (it: NamedWithSchema) => string;
export declare const columnRenameKey: (table: string, schema: string, column: string) => string;
export declare const kloudMeta: () => {
    pg: number[];
    mysql: number[];
    sqlite: number[];
};
export declare const statementsForDiffs: (in1: any, in2: any) => Promise<{
    left: {
        internal?: {
            tables: Record<string, {
                columns: Record<string, {
                    isArray?: boolean | undefined;
                    dimensions?: number | undefined;
                    rawType?: string | undefined;
                } | undefined>;
            } | undefined>;
        } | undefined;
        id: string;
        prevId: string;
        version: "5";
        dialect: "pg";
        tables: Record<string, {
            name: string;
            columns: Record<string, {
                isUnique?: any;
                default?: any;
                uniqueName?: string | undefined;
                nullsNotDistinct?: boolean | undefined;
                name: string;
                type: string;
                primaryKey: boolean;
                notNull: boolean;
            }>;
            indexes: Record<string, {
                name: string;
                columns: string[];
                isUnique: boolean;
            }>;
            foreignKeys: Record<string, {
                onUpdate?: string | undefined;
                onDelete?: string | undefined;
                name: string;
                tableFrom: string;
                columnsFrom: string[];
                tableTo: string;
                columnsTo: string[];
            }>;
            schema: string;
            compositePrimaryKeys: Record<string, {
                name: string;
                columns: string[];
            }>;
            uniqueConstraints: Record<string, {
                name: string;
                columns: string[];
                nullsNotDistinct: boolean;
            }>;
        }>;
        schemas: Record<string, string>;
        _meta: {
            columns: Record<string, string>;
            tables: Record<string, string>;
            schemas: Record<string, string>;
        };
        enums: Record<string, {
            name: string;
            values: Record<string, string>;
        }>;
    };
    right: {
        internal?: {
            tables: Record<string, {
                columns: Record<string, {
                    isArray?: boolean | undefined;
                    dimensions?: number | undefined;
                    rawType?: string | undefined;
                } | undefined>;
            } | undefined>;
        } | undefined;
        id: string;
        prevId: string;
        version: "5";
        dialect: "pg";
        tables: Record<string, {
            name: string;
            columns: Record<string, {
                isUnique?: any;
                default?: any;
                uniqueName?: string | undefined;
                nullsNotDistinct?: boolean | undefined;
                name: string;
                type: string;
                primaryKey: boolean;
                notNull: boolean;
            }>;
            indexes: Record<string, {
                name: string;
                columns: string[];
                isUnique: boolean;
            }>;
            foreignKeys: Record<string, {
                onUpdate?: string | undefined;
                onDelete?: string | undefined;
                name: string;
                tableFrom: string;
                columnsFrom: string[];
                tableTo: string;
                columnsTo: string[];
            }>;
            schema: string;
            compositePrimaryKeys: Record<string, {
                name: string;
                columns: string[];
            }>;
            uniqueConstraints: Record<string, {
                name: string;
                columns: string[];
                nullsNotDistinct: boolean;
            }>;
        }>;
        schemas: Record<string, string>;
        _meta: {
            columns: Record<string, string>;
            tables: Record<string, string>;
            schemas: Record<string, string>;
        };
        enums: Record<string, {
            name: string;
            values: Record<string, string>;
        }>;
    };
    statements: import("./jsonStatements").JsonStatement[];
    sqlStatements: string[];
    _meta: {
        schemas: {};
        tables: {};
        columns: {};
    } | undefined;
}>;
