import Base from './base'; import AirtableRecord from './record'; import AirtableTable from './table'; import AirtableError from './airtable_error'; import AirtableQuery from './query'; import { AirtableBase } from './airtable_base'; import { ObjectMap } from './object_map'; import { FieldSet as AirtableFieldSet } from './field_set'; import { Collaborator as AirtableCollaborator } from './collaborator'; import { Thumbnail as AirtableThumbnail } from './thumbnail'; import { Attachment as AirtableAttachment } from './attachment'; import { Records as AirtableRecords } from './records'; import { RecordData as AirtableRecordData } from './record_data'; import { QueryParams as AirtableSelectOptions } from './query_params'; declare type CustomHeaders = ObjectMap; declare class Airtable { readonly _apiKey: string; readonly _apiVersion: string; readonly _apiVersionMajor: string; readonly _customHeaders: CustomHeaders; readonly _endpointUrl: string; readonly _noRetryIfRateLimited: boolean; readonly _requestTimeout: number; static Base: typeof Base; static Record: typeof AirtableRecord; static Table: typeof AirtableTable; static Error: typeof AirtableError; static apiKey: string; static apiVersion: string; static endpointUrl: string; static noRetryIfRateLimited: boolean; static requestTimeout: number; constructor(opts?: Airtable.AirtableOptions); base(baseId: string): Airtable.Base; static default_config(): Airtable.AirtableOptions; static configure({ apiKey, endpointUrl, apiVersion, noRetryIfRateLimited, requestTimeout, }: Pick): void; static base(baseId: string): Airtable.Base; } declare namespace Airtable { interface AirtableOptions { apiKey?: string; apiVersion?: string; customHeaders?: CustomHeaders; endpointUrl?: string; noRetryIfRateLimited?: boolean; requestTimeout?: number; } type FieldSet = AirtableFieldSet; type Collaborator = AirtableCollaborator; type Attachment = AirtableAttachment; type Thumbnail = AirtableThumbnail; type Base = AirtableBase; type Error = AirtableError; type Table = AirtableTable; type SelectOptions = AirtableSelectOptions; type Query = AirtableQuery; type Record = AirtableRecord; type RecordData = AirtableRecordData; type Records = AirtableRecords; } export = Airtable;