import { RepositoryContract } from "./contract"; import { BaseModel } from "../baseModel"; import { ModelKeys } from "../interfaces"; import { Knex, Knex as KnexType } from "knex"; import { CustomQueryBuilder } from "../queryBuilders/custom"; export declare class DatabaseRepository implements RepositoryContract { model: any; knexConnection: KnexType | null; trx: Knex.Transaction | null; currentforUpdate: Record | null; bindCon(conName?: string): RepositoryContract; setModel(model: BaseModel): this; all(): Promise; firstWhere(inputs: ModelKeys, error?: boolean): Promise; getWhere(inputs: ModelKeys, error?: boolean): Promise; create(inputs: ModelKeys): Promise; createOrUpdate(conditions: ModelKeys, values: ModelKeys): Promise; firstOrNew(conditions: ModelKeys, values: ModelKeys): Promise; update(model: ModelKeys, setValues: ModelKeys): Promise; updateWhere(where: ModelKeys, setValues: ModelKeys): Promise; exists(params: ModelKeys): Promise; count(params: ModelKeys): Promise; delete(model: ModelKeys | number): Promise; deleteWhere(inputs: ModelKeys): Promise; refresh(model: ModelKeys): Promise; attach(model: ModelKeys, relation: string, payload: number | string | Array | Record): Promise; sync(model: ModelKeys, relation: string, payload: any[]): Promise; chunk(where: ModelKeys, size: number, cb: (models: T[]) => void): Promise; raiseError(): void; query(): CustomQueryBuilder; getEntityName(): string; updateAndReturn(where: ModelKeys, setValues: ModelKeys): Promise; bulkInsert(inputs: ModelKeys[]): Promise; startTrx(options?: Knex.TransactionConfig): Promise>; bindTrx(trx: Knex.Transaction): RepositoryContract; getTrx(): Knex.Transaction | null; commitTrx(): Promise; rollbackTrx(): Promise; forUpdate(options?: Record): this; private clearForUpdate; }