/**
 * This file was auto-generated by Fern from our API Definition.
 */
import * as environments from "../../../../environments";
import * as core from "../../../../core";
import { AccountDetails } from "../resources/accountDetails/client/Client";
import { AccountToken } from "../resources/accountToken/client/Client";
import { AsyncPassthrough } from "../resources/asyncPassthrough/client/Client";
import { AuditTrail } from "../resources/auditTrail/client/Client";
import { AvailableActions } from "../resources/availableActions/client/Client";
import { Scopes } from "../resources/scopes/client/Client";
import { DeleteAccount } from "../resources/deleteAccount/client/Client";
import { Drives } from "../resources/drives/client/Client";
import { FieldMapping } from "../resources/fieldMapping/client/Client";
import { Files } from "../resources/files/client/Client";
import { Folders } from "../resources/folders/client/Client";
import { GenerateKey } from "../resources/generateKey/client/Client";
import { Groups } from "../resources/groups/client/Client";
import { Issues } from "../resources/issues/client/Client";
import { LinkToken } from "../resources/linkToken/client/Client";
import { LinkedAccounts } from "../resources/linkedAccounts/client/Client";
import { Passthrough } from "../resources/passthrough/client/Client";
import { RegenerateKey } from "../resources/regenerateKey/client/Client";
import { SyncStatus } from "../resources/syncStatus/client/Client";
import { ForceResync } from "../resources/forceResync/client/Client";
import { Users } from "../resources/users/client/Client";
import { WebhookReceivers } from "../resources/webhookReceivers/client/Client";
export declare namespace Filestorage {
    interface Options {
        environment?: core.Supplier<environments.MergeEnvironment | string>;
        apiKey: core.Supplier<core.BearerToken>;
        /** Override the X-Account-Token header */
        accountToken?: core.Supplier<string | undefined>;
        fetcher?: core.FetchFunction;
    }
    interface RequestOptions {
        /** The maximum time to wait for a response in seconds. */
        timeoutInSeconds?: number;
        /** The number of times to retry the request. Defaults to 2. */
        maxRetries?: number;
        /** A hook to abort the request. */
        abortSignal?: AbortSignal;
        /** Override the X-Account-Token header */
        accountToken?: string | undefined;
        /** Additional headers to include in the request. */
        headers?: Record<string, string>;
    }
}
export declare class Filestorage {
    protected readonly _options: Filestorage.Options;
    constructor(_options: Filestorage.Options);
    protected _accountDetails: AccountDetails | undefined;
    get accountDetails(): AccountDetails;
    protected _accountToken: AccountToken | undefined;
    get accountToken(): AccountToken;
    protected _asyncPassthrough: AsyncPassthrough | undefined;
    get asyncPassthrough(): AsyncPassthrough;
    protected _auditTrail: AuditTrail | undefined;
    get auditTrail(): AuditTrail;
    protected _availableActions: AvailableActions | undefined;
    get availableActions(): AvailableActions;
    protected _scopes: Scopes | undefined;
    get scopes(): Scopes;
    protected _deleteAccount: DeleteAccount | undefined;
    get deleteAccount(): DeleteAccount;
    protected _drives: Drives | undefined;
    get drives(): Drives;
    protected _fieldMapping: FieldMapping | undefined;
    get fieldMapping(): FieldMapping;
    protected _files: Files | undefined;
    get files(): Files;
    protected _folders: Folders | undefined;
    get folders(): Folders;
    protected _generateKey: GenerateKey | undefined;
    get generateKey(): GenerateKey;
    protected _groups: Groups | undefined;
    get groups(): Groups;
    protected _issues: Issues | undefined;
    get issues(): Issues;
    protected _linkToken: LinkToken | undefined;
    get linkToken(): LinkToken;
    protected _linkedAccounts: LinkedAccounts | undefined;
    get linkedAccounts(): LinkedAccounts;
    protected _passthrough: Passthrough | undefined;
    get passthrough(): Passthrough;
    protected _regenerateKey: RegenerateKey | undefined;
    get regenerateKey(): RegenerateKey;
    protected _syncStatus: SyncStatus | undefined;
    get syncStatus(): SyncStatus;
    protected _forceResync: ForceResync | undefined;
    get forceResync(): ForceResync;
    protected _users: Users | undefined;
    get users(): Users;
    protected _webhookReceivers: WebhookReceivers | undefined;
    get webhookReceivers(): WebhookReceivers;
}
