import { QueryIR } from '../types.js';
export declare class SqlCompiler {
    compileSelect(ir: QueryIR): {
        sql: string;
        params: any[];
    };
    compileInsert(collection: string, data: Record<string, any>): {
        sql: string;
        params: any[];
    };
    compileUpdate(collection: string, data: Record<string, any>, ir: QueryIR): {
        sql: string;
        params: any[];
    };
    compileDelete(collection: string, ir: QueryIR): {
        sql: string;
        params: any[];
    };
    compileCount(collection: string, ir: QueryIR): {
        sql: string;
        params: any[];
    };
    compileCreateTable(collection: string, fields: {
        name: string;
        type: string;
        primary: boolean;
        nullable: boolean;
        unique: boolean;
    }[]): string;
    private compileWhere;
    private compileOrder;
    private mapType;
}
