import { KeyVal, ResultSet, TableInfo, ValueOf } from '../types' import { DialectBase, IDialectBase } from './base' import { IDialectWhere, ReadDialect } from './base/read' import { WhereDialect } from './base/where' import { JoinCondition, JoinMapper } from './join' export declare class Dialect extends DialectBase { constructor(info: TableInfo) create(): IDialectBase drop(): IDialectBase select(fields?: ((k: T) => void) | '*'): ReadDialect single(fields?: ((k: T) => void) | '*'): ReadDialect join>( selector: (tbl: TDb) => Q, clause: ( self: JoinCondition & T, other: { [key in keyof Q]: JoinCondition> & ValueOf } ) => void ): JoinMapper count(): IDialectWhere any(): IDialectWhere insert(set: Partial, upsert?: boolean): IDialectBase insert(sets: Array>): IDialectBase upsert(set: Partial): IDialectBase update(set: Partial): WhereDialect delete(): WhereDialect protected __select(fields?: ((k: T) => void) | '*'): ReadDialect protected __insert( set: Partial | Array>, upsert?: boolean ): IDialectBase protected __insertMany(sets: Array>): IDialectBase }