import Connection, { IOptions } from '../Connection'; import IQueryBuilder from '../IQueryBuilder'; import { IWhere, IWhereConfig, IJoin } from '../IQueryBuilder'; import QueryType from '../../modules/enums/QueryTypes'; interface IQuery { with?: { name: string; recursive?: boolean; query: string; }; whereConfig: IWhereConfig; where: IWhere[]; returning: string[]; } interface IQuerySelect { distinct: boolean; select: string[]; groupBy: string[]; orderBy: string[]; joins: IJoin[]; limit?: number; offset?: number; } declare enum IQueryInsertValueTypes { IDENTIFIER = 0, LITERAL = 1, SIMPLE_STRING = 2 } interface IQueryInsert { columns: string[]; values: any[]; } interface IInsertOptions { multiple: boolean; columnTypes?: Record; } interface IResult { rows: any[]; } export default class Postgres extends Connection { _isConnected: boolean; query: IQuery; querySelect: IQuerySelect; queryInsert: IQueryInsert; queryUpdate: { set: {}; }; queryDelete: { table: string; where: never[]; }; constructor(options: IOptions); clearConnection(): void; connect(): boolean; isConnected(): boolean; disconnect(): boolean; restartConnection(): void; table(tableName: string): IQueryBuilder; get(): Promise; first(): Promise>; select(...args: string[]): IQueryBuilder; distinct(status: boolean): IQueryBuilder; whereConfig(config: IWhereConfig): IQueryBuilder; where(...args: IWhere[]): IQueryBuilder; whereSimple(wheres: Record): IQueryBuilder; returning(...args: string[]): IQueryBuilder; with(name: string, query: string, recursive?: boolean): IQueryBuilder; groupBy(...args: string[]): IQueryBuilder; orderBy(...args: string[]): IQueryBuilder; offset(count: number): IQueryBuilder; limit(count: number): IQueryBuilder; skip(count: number): IQueryBuilder; take(count: number): IQueryBuilder; join(table: string, key: string, operation: string, value: string, type?: string): IQueryBuilder; innerJoin(table: string, key: string, operation: string, value: string): IQueryBuilder; leftJoin(table: string, key: string, operation: string, value: string): IQueryBuilder; rightJoin(table: string, key: string, operation: string, value: string): IQueryBuilder; fullJoin(table: string, key: string, operation: string, value: string): IQueryBuilder; insert(items: Record, options?: IInsertOptions): any; private formatInsertValues; update(items: Record): Promise; delete(): Promise; getQuery(type?: QueryType): string; raw(query: string): Promise; parseResultQuery(result: IResult): any[]; logger(): any; } export {};