/**
 * 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 { Accounts } from "../resources/accounts/client/Client";
import { AsyncPassthrough } from "../resources/asyncPassthrough/client/Client";
import { AuditTrail } from "../resources/auditTrail/client/Client";
import { AvailableActions } from "../resources/availableActions/client/Client";
import { Contacts } from "../resources/contacts/client/Client";
import { CustomObjectClasses } from "../resources/customObjectClasses/client/Client";
import { AssociationTypes } from "../resources/associationTypes/client/Client";
import { CustomObjects } from "../resources/customObjects/client/Client";
import { Associations } from "../resources/associations/client/Client";
import { Scopes } from "../resources/scopes/client/Client";
import { DeleteAccount } from "../resources/deleteAccount/client/Client";
import { EngagementTypes } from "../resources/engagementTypes/client/Client";
import { Engagements } from "../resources/engagements/client/Client";
import { FieldMapping } from "../resources/fieldMapping/client/Client";
import { GenerateKey } from "../resources/generateKey/client/Client";
import { Issues } from "../resources/issues/client/Client";
import { Leads } from "../resources/leads/client/Client";
import { LinkToken } from "../resources/linkToken/client/Client";
import { LinkedAccounts } from "../resources/linkedAccounts/client/Client";
import { Notes } from "../resources/notes/client/Client";
import { Opportunities } from "../resources/opportunities/client/Client";
import { Passthrough } from "../resources/passthrough/client/Client";
import { RegenerateKey } from "../resources/regenerateKey/client/Client";
import { Stages } from "../resources/stages/client/Client";
import { SyncStatus } from "../resources/syncStatus/client/Client";
import { ForceResync } from "../resources/forceResync/client/Client";
import { Tasks } from "../resources/tasks/client/Client";
import { Users } from "../resources/users/client/Client";
import { WebhookReceivers } from "../resources/webhookReceivers/client/Client";
export declare namespace Crm {
    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 Crm {
    protected readonly _options: Crm.Options;
    constructor(_options: Crm.Options);
    protected _accountDetails: AccountDetails | undefined;
    get accountDetails(): AccountDetails;
    protected _accountToken: AccountToken | undefined;
    get accountToken(): AccountToken;
    protected _accounts: Accounts | undefined;
    get accounts(): Accounts;
    protected _asyncPassthrough: AsyncPassthrough | undefined;
    get asyncPassthrough(): AsyncPassthrough;
    protected _auditTrail: AuditTrail | undefined;
    get auditTrail(): AuditTrail;
    protected _availableActions: AvailableActions | undefined;
    get availableActions(): AvailableActions;
    protected _contacts: Contacts | undefined;
    get contacts(): Contacts;
    protected _customObjectClasses: CustomObjectClasses | undefined;
    get customObjectClasses(): CustomObjectClasses;
    protected _associationTypes: AssociationTypes | undefined;
    get associationTypes(): AssociationTypes;
    protected _customObjects: CustomObjects | undefined;
    get customObjects(): CustomObjects;
    protected _associations: Associations | undefined;
    get associations(): Associations;
    protected _scopes: Scopes | undefined;
    get scopes(): Scopes;
    protected _deleteAccount: DeleteAccount | undefined;
    get deleteAccount(): DeleteAccount;
    protected _engagementTypes: EngagementTypes | undefined;
    get engagementTypes(): EngagementTypes;
    protected _engagements: Engagements | undefined;
    get engagements(): Engagements;
    protected _fieldMapping: FieldMapping | undefined;
    get fieldMapping(): FieldMapping;
    protected _generateKey: GenerateKey | undefined;
    get generateKey(): GenerateKey;
    protected _issues: Issues | undefined;
    get issues(): Issues;
    protected _leads: Leads | undefined;
    get leads(): Leads;
    protected _linkToken: LinkToken | undefined;
    get linkToken(): LinkToken;
    protected _linkedAccounts: LinkedAccounts | undefined;
    get linkedAccounts(): LinkedAccounts;
    protected _notes: Notes | undefined;
    get notes(): Notes;
    protected _opportunities: Opportunities | undefined;
    get opportunities(): Opportunities;
    protected _passthrough: Passthrough | undefined;
    get passthrough(): Passthrough;
    protected _regenerateKey: RegenerateKey | undefined;
    get regenerateKey(): RegenerateKey;
    protected _stages: Stages | undefined;
    get stages(): Stages;
    protected _syncStatus: SyncStatus | undefined;
    get syncStatus(): SyncStatus;
    protected _forceResync: ForceResync | undefined;
    get forceResync(): ForceResync;
    protected _tasks: Tasks | undefined;
    get tasks(): Tasks;
    protected _users: Users | undefined;
    get users(): Users;
    protected _webhookReceivers: WebhookReceivers | undefined;
    get webhookReceivers(): WebhookReceivers;
}
