import { FieldSet } from './field_set'; import Table from './table'; declare type RecordError = any; declare type RecordJson = any; declare type OptionalParameters = { typecast: boolean; }; interface RecordCallback { (error: null, record: Record): void; (error: RecordError): void; } interface RecordActionMethod { (): Promise>; (done: RecordCallback): void; } interface RecordChangeMethod { (cellValuesByName: TFields, done: RecordCallback): void; (cellValuesByName: TFields, opts: OptionalParameters, done: RecordCallback): void; (cellValuesByName: TFields, opts?: OptionalParameters): Promise>; } declare class Record { readonly _table: Table; _rawJson: RecordJson; readonly id: string; readonly commentCount?: number; fields: TFields; readonly save: RecordActionMethod; readonly patchUpdate: RecordChangeMethod; readonly putUpdate: RecordChangeMethod; readonly destroy: RecordActionMethod; readonly fetch: RecordActionMethod; readonly updateFields: RecordChangeMethod; readonly replaceFields: RecordChangeMethod; constructor(table: Table, recordId: string, recordJson?: RecordJson); getId(): string; get(columnName: Field): TFields[Field]; set(columnName: Field, columnValue: TFields[Field]): void; setRawJson(rawJson: RecordJson): void; } export = Record;