import { IModel, ICollection, IEntities } from './core'; import { ICoreIntegratedDriver } from './driver-integrations/index'; export interface ICreateOptions { entities: IEntities; db: any; logError?: (err: Error) => never; } export interface IPureORM extends ICoreIntegratedDriver { getMatching: (model: T) => Promise; getOneOrNoneMatching: (model: T) => Promise; getAnyMatching: >(model: IModel) => Promise; getAllMatching: >(model: IModel) => Promise; create: (model: T) => Promise; update: (model: T, options?: { on: string; }) => Promise; delete: (model: T) => Promise; deleteMatching: (model: T) => Promise; getSqlInsertParts: (model: IModel) => { columns: string; values: Array; valuesVar: Array; }; getSqlUpdateParts: (model: IModel, on?: string) => { clause: string; idVar: string; values: Array; }; getMatchingParts: (model: IModel) => { whereClause: string; values: Array; }; getMatchingPartsObject: (model: IModel) => { whereClause: string; values: Array; }; getNewWith: (model: IModel, sqlColumns: any, values: any) => IModel; getValueBySqlColumn: (model: IModel, sqlColumn: string) => string; getSqlColumnForPropertyName: (model: IModel, propertyName: string) => string; } export declare const create: ({ entities: externalEntities, db, logError }: ICreateOptions) => IPureORM;