export interface QueryParams { readonly fields?: string[]; readonly eager?: boolean; readonly eagerL?: boolean; readonly map?: boolean; readonly rules?: boolean; readonly meta?: boolean; readonly build?: boolean; readonly fill?: boolean; readonly resolveA?: boolean; readonly skip?: number; readonly limit?: number; readonly sort?: unknown[][]; readonly raiseE?: boolean; [x: string]: unknown; } export declare class Model { static niw(this: { new (): T }): T; static fill(this: { new (): T }, model?: T, safe?: boolean): Promise; static get(this: { new (): T }, params?: QueryParams): Promise; static find(this: { new (): T }, params?: QueryParams): Promise; static count(this: { new (): T }, params?: QueryParams): Promise; static get increments(): string[]; static get immutables(): string[]; constructor(options?: { fill?: boolean }); apply(this: T, model: Record): Promise; save(this: T): Promise; delete( this: T, options?: { preDelete?: boolean; postDelete?: boolean; beforeCallbacks?: ((self: T, model: Record) => void)[]; afterCallbacks?: ((self: T, model: Record) => void)[]; } ): Promise; advance(this: T, name: string, delta: number): Promise; reload(this: T, params?: QueryParams): Promise; validate(): Promise; _validate(): IterableIterator; } export declare class ModelStore extends Model { static get schema(): Record; static get idName(): string; preSave(): Promise; preCreate(): Promise; preUpdate(): Promise; preDelete(): Promise; postSave(): Promise; postCreate(): Promise; postUpdate(): Promise; postDelete(): Promise; }