import type { CommandContext, ExecResult as JustBashExecResult } from 'just-bash';
import type { VirtualFS } from '../virtual-fs';
export interface ParsedColumn {
    propName: string;
    sqlName: string;
    type: string;
    sqlType: string;
    modifiers: string[];
    references?: {
        table: string;
        column: string;
        onDelete?: string;
        onUpdate?: string;
    };
}
export interface ParsedTable {
    name: string;
    columns: ParsedColumn[];
}
export interface IntrospectedColumn {
    column_name: string;
    data_type: string;
    is_nullable: string;
    column_default: string | null;
}
export interface IntrospectedTable {
    name: string;
    columns: IntrospectedColumn[];
}
export interface SchemaDiff {
    createTables: ParsedTable[];
    dropTables: string[];
    addColumns: {
        table: string;
        columns: ParsedColumn[];
    }[];
    dropColumns: {
        table: string;
        columns: string[];
    }[];
}
/**
 * Parse all pgTable() definitions from a Drizzle schema source file.
 */
export declare function parseDrizzleSchema(source: string): ParsedTable[];
export declare function generateCreateTableSQL(table: ParsedTable): string;
export declare function generateMigrationSQL(diff: SchemaDiff): string;
/**
 * Build IntrospectedTable[] from information_schema.columns rows.
 */
export declare function buildIntrospectedSchema(rows: (IntrospectedColumn & {
    table_name: string;
})[]): IntrospectedTable[];
/**
 * Diff desired schema (from Drizzle) against current schema (from DB introspection).
 */
export declare function diffSchemas(desired: ParsedTable[], current: IntrospectedTable[]): SchemaDiff;
export declare function isDiffEmpty(diff: SchemaDiff): boolean;
export declare function runDrizzleKitCommand(args: string[], _ctx: CommandContext, vfs: VirtualFS): Promise<JustBashExecResult>;
//# sourceMappingURL=drizzle-kit-command.d.ts.map