import Emittery from 'emittery'; import sqlite3 from 'sqlite3'; import { IPrimaryRow, IPropRow, ISqliteMeta } from './decorators'; import { SQLParams, SqliteExt } from './utils'; export declare type UndefinedEqNull = { [K in keyof E]: E[K] | (undefined extends E[K] ? null : never); }; export interface ITransformer { get: (repr: any) => T | null; set: (data: T) => any; } export declare class Column { opts: { name: string; table: Table; prop?: IPropRow | IPrimaryRow; }; constructor(opts: { name: string; table: Table; prop?: IPropRow | IPrimaryRow; }); get tableName(): any; get name(): string; } export declare class Table extends Emittery.Typed<{ 'build-sql': { stmt: string; }; 'pre-create': { entry: UndefinedEqNull; options: { postfix: string[]; }; }; 'create-sql': { stmt: string; params: SQLParams; }; 'pre-update': { stmt: string; params: SQLParams; set: Partial>; }; 'update-sql': { stmt: string; params: SQLParams; }; 'pre-delete': { stmt: string; params: SQLParams; }; 'delete-sql': { stmt: string; params: SQLParams; }; }> { c: Required<{ [K in keyof E]: Column; }>; m: E & { __meta: ISqliteMeta; }; get primaryKey(): string; get name(): string; constructor(M: { new (): M; }); __init(db: sqlite3.Database): Promise; create(db: sqlite3.Database): (entry: UndefinedEqNull, options?: { postfix?: string; ignoreErrors?: boolean; }) => Promise; __updateBySql(db: sqlite3.Database): (stmt: string, params: SQLParams, set: Partial) => Promise; __deleteBySql(db: sqlite3.Database): (stmt: string, params: SQLParams) => Promise; /** * @internal * @param k * @param method */ transform(k: string, method?: 'get' | 'set'): (a: any) => any; } export declare const _transformers: Record>; //# sourceMappingURL=table.d.ts.map