import postgres from "postgres";
import { PostgresJsDatabase } from "drizzle-orm/postgres-js";
import { SQL } from "drizzle-orm";
import { AnyTable, AnySelectedFields, AnyColumn, SelectQuery, DbAdapter, QuerySource, DbSchema } from "@db/types/db-types";
export declare class PostgresAdapter implements DbAdapter {
    #private;
    constructor(connectionString?: string);
    init(schema: DbSchema): void;
    getDb(): PostgresJsDatabase<DbSchema>;
    getClient(): postgres.Sql<{}>;
    beginUnsafeTransaction(): Promise<void>;
    rollbackUnsafeTransaction(): Promise<void>;
    createDynamicSelect(table: QuerySource, selection?: AnySelectedFields): import("drizzle-orm/pg-core").PgSelectBase<any, any, "single" | "partial", any, true, never, any[], any>;
    getQueryConfig(query: unknown): any;
    getLikeExpression(column: AnyColumn | SQL, value: string | SQL): SQL<unknown>;
    getExtractDateExpression(column: AnyColumn | SQL): SQL<unknown>;
    leftJoin(query: SelectQuery, table: QuerySource, condition: SQL): any;
    innerJoin(query: SelectQuery, table: QuerySource, condition: SQL): any;
    orderBy(query: SelectQuery, ...columns: (SQL | AnyColumn)[]): any;
    groupBy(query: SelectQuery, ...columns: (SQL | AnyColumn)[]): any;
    having(query: SelectQuery, condition: SQL): any;
    limit(query: SelectQuery, value: number): any;
    offset(query: SelectQuery, value: number): any;
    where(query: SelectQuery, condition?: SQL): any;
    insert(table: AnyTable): import("drizzle-orm/pg-core").PgInsertBuilder<AnyTable, import("drizzle-orm/postgres-js").PostgresJsQueryResultHKT, false>;
    update(table: AnyTable): import("drizzle-orm/pg-core").PgUpdateBuilder<AnyTable, import("drizzle-orm/postgres-js").PostgresJsQueryResultHKT>;
    delete(table: AnyTable): import("drizzle-orm/pg-core").PgDeleteBase<AnyTable, import("drizzle-orm/postgres-js").PostgresJsQueryResultHKT, undefined, undefined, false, never>;
    createDatabaseIfNotExists(): Promise<void>;
    dropDatabase(): Promise<void>;
    emptyAllTables(): Promise<void>;
    runMigrations(): Promise<void>;
    generateMigrations(name: string): Promise<void>;
}
