import { FieldsValidator, UnknownFields } from "./fields";
import { ActionPoint, ActionPointOptions } from "./action-point";
import { ValidationContext } from "./validator";
import { RestMethod, UnknownActionPayload } from "./endpoint";
import { AirtableRecord } from "./record";
import { SelectQuery, SelectQueryParams } from "./select-query";
import { RecordData } from "./raw-types";
import { DeletedRecord } from "./raw-types";
export declare type TableDataSource = ActionPoint;
export interface TableActionPoint {
runTableAction
(method: RestMethod, { path, ...options }: ActionPointOptions
): Promise;
}
export declare class Table implements TableActionPoint, FieldsValidator {
readonly base: TableDataSource;
readonly name: string;
validator?: FieldsValidator;
constructor(base: TableDataSource, tableName: string, validator?: FieldsValidator);
createValidation(reference?: string): ValidationContext;
private subPath;
runTableAction(method: RestMethod, { path, ...options }: ActionPointOptions
): Promise;
find(recordId: string): Promise>;
findOrNull(recordId: string): Promise | null>;
select(query?: SelectQueryParams): SelectQuery;
private createSingleRecord;
private createMultipleRecords;
create(data: Fields): Promise>;
create(data: Fields[]): Promise[]>;
private updateSingleRecord;
private updateMultipleRecords;
private replaceSingleRecord;
private replaceMultipleRecords;
update(data: RecordData>): Promise>;
update(data: RecordData>[]): Promise[]>;
replace(data: RecordData): Promise>;
replace(data: RecordData[]): Promise[]>;
private destroySingleRecord;
private destroyMultipleRecords;
destroy(id: string): Promise;
destroy(ids: string[]): Promise;
}