import type { Query } from "../abstract/Query";
import { Schema } from "../abstract/Schema";
import type { CountInput, ExistsInput, InsertInput, LoadByInput, Row, SelectByInput, SelectInput, Table, UniqueKey, UpdateInput } from "../types";
export declare class PgSchema<TTable extends Table, TUniqueKey extends UniqueKey<TTable>> extends Schema<TTable, TUniqueKey> {
    idGen(): Query<string>;
    insert(input: InsertInput<TTable>): Query<string | null>;
    upsert(input: InsertInput<TTable>): Query<string>;
    update(id: string, input: UpdateInput<TTable>): Query<boolean>;
    delete(id: string): Query<boolean>;
    load(id: string): Query<Row<TTable> | null>;
    loadBy(input: LoadByInput<TTable, TUniqueKey>): Query<Row<TTable> | null>;
    selectBy(input: SelectByInput<TTable, TUniqueKey>): Query<Array<Row<TTable>>>;
    select(input: SelectInput<TTable>): Query<Array<Row<TTable>>>;
    count(input: CountInput<TTable>): Query<number>;
    exists(input: ExistsInput<TTable>): Query<boolean>;
}
//# sourceMappingURL=PgSchema.d.ts.map