import { Table } from './database'; import { UniqueKey, RelatedField } from './schema'; import { FlushState } from './flush'; import { Row } from './engine'; import { CopyOptions } from './copy'; import { Document, Value } from './types'; export type FieldValue = Value | Record; export declare const RecordProxy: { set: (record: Record, name: string, value: any) => boolean; get: (record: Record, name: string) => any; }; export declare class Record { [key: string]: any; __table: Table; __data: { [key: string]: FieldValue; }; __state: FlushState; __related: { [key: string]: RecordSet; }; __inserted: boolean; __connect: boolean; __path?: string; constructor(table: Table); get(name: string): FieldValue | undefined; save(): Promise; update(data?: Row): Promise; delete(): Promise; copy(data: Document, options?: CopyOptions): Promise; __dirty(): boolean; __disconnect(): void; __flushable(perfect?: number): boolean; __fields(): Row; __remove_dirty(keys: string | string[]): void; __is_inserted(): boolean; __getValue(name: string): Value; __primaryKey(): Value; __primaryKeyDirty(): boolean; __setPrimaryKey(value: Value): void; __filter(): Row; __valueOf(uc: UniqueKey): string | undefined | null; __merge(): void; __updateState(existing: Record): void; __json(): Document; __dump(): { [key: string]: unknown; __missing?: string[]; }; __repr(): string; } export declare class RecordSet { record: Record; field: RelatedField; constructor(record: Record, field: RelatedField); add(record: Record): Promise; replaceWith(): void; remove(record: Record): Promise; } export declare function getModel(table: Table, bulk?: boolean): ((data: Document) => Record) & { table: Table; fields: import("./schema").Field[]; };