export declare const baseModel = "export interface Paginate {\n  pageIndex: number,\n  pageSize: number,\n}\n\nexport interface Paginated<T> extends Paginate {\n  totalEntries: number,\n  data: T[],\n}\n\nexport enum QueryOperator {\n  EQUALS = 'EQUALS',\n  IN = 'IN',\n  BETWEEN = 'BETWEEN',\n  LIKE = 'LIKE',\n  NULL = 'NULL',\n  NOT_EQUALS = 'NOT_EQUALS',\n  NOT_IN = 'NOT_IN',\n  NOT_BETWEEN = 'NOT_BETWEEN',\n  NOT_NULL = 'NOT_NULL',\n}\n\nexport interface Clause<T = string> { \n    field: T; \n    operator: QueryOperator; \n    value: any;\n}\n\nexport interface MutationResult { \n    rows: number;\n    res: string;\n    error?: string;\n}\n\nexport interface OnnCache {\n    get: <T>(options:any) => Promise<T | undefined>;\n    set: <T>(options:any, value: T) => Promise<T | unknown>;\n    del: (options:any) => Promise<void | undefined>;\n}\n\nexport class MemCache implements OnnCache {\n    cache: Record<string, any> = {};\n    get = async <T>(options:any) => this.cache[JSON.stringify(options)] as T;\n    set = async <T>(options:any, value: T) => this.cache[JSON.stringify(options)] = value;\n    del = async (options:any) => this.set(options, undefined);\n}\n\nexport interface OnnContext {\n  onn?: {\n    skipCache?: boolean;\n    cache?: OnnCache;\n    extras?: Record<string, any>;\n  }\n}\n\nexport interface QueryBuilder<TYPE extends {}, IMPL = any> {\n    executeQuery(): Promise<TYPE[]>;\n    executeCount(): Promise<number>;\n    executeInsert(value: Partial<TYPE>): Promise<MutationResult>;\n    executeUpdate(value: Partial<TYPE>): Promise<MutationResult>;\n    executeDelete(): Promise<MutationResult>;\n    table(tableName:string): QueryBuilder<TYPE, IMPL>;\n    orderBy(orderBy?: { field: string, direction: 'asc' | 'desc' }): QueryBuilder<TYPE, IMPL>;\n    distinct(distinct?: string[]): QueryBuilder<TYPE, IMPL>;\n    where(...clause: Clause[]): QueryBuilder<TYPE, IMPL>;\n    select(fields: string | string[]): QueryBuilder<TYPE, IMPL>;\n    offset(offset: number): QueryBuilder<TYPE, IMPL>;\n    limit(limit: number): QueryBuilder<TYPE, IMPL>;\n}\n\n";
