import { FetchOptionsInput } from './networking/fetchOptions.js';
import { BaseUrlsInput } from './networking/baseUrls.js';
import { AuthorizationManager } from './managers/authorization.js';
import { FilesManager } from './managers/files.js';
import { TrashedFilesManager } from './managers/trashedFiles.js';
import { AppItemAssociationsManager } from './managers/appItemAssociations.js';
import { DownloadsManager } from './managers/downloads.js';
import { UploadsManager } from './managers/uploads.js';
import { ChunkedUploadsManager } from './managers/chunkedUploads.js';
import { ListCollaborationsManager } from './managers/listCollaborations.js';
import { CommentsManager } from './managers/comments.js';
import { TasksManager } from './managers/tasks.js';
import { FileVersionsManager } from './managers/fileVersions.js';
import { FileMetadataManager } from './managers/fileMetadata.js';
import { FileClassificationsManager } from './managers/fileClassifications.js';
import { SkillsManager } from './managers/skills.js';
import { FileWatermarksManager } from './managers/fileWatermarks.js';
import { FileRequestsManager } from './managers/fileRequests.js';
import { FoldersManager } from './managers/folders.js';
import { TrashedFoldersManager } from './managers/trashedFolders.js';
import { FolderMetadataManager } from './managers/folderMetadata.js';
import { FolderClassificationsManager } from './managers/folderClassifications.js';
import { TrashedItemsManager } from './managers/trashedItems.js';
import { FolderWatermarksManager } from './managers/folderWatermarks.js';
import { FolderLocksManager } from './managers/folderLocks.js';
import { MetadataTemplatesManager } from './managers/metadataTemplates.js';
import { ClassificationsManager } from './managers/classifications.js';
import { MetadataCascadePoliciesManager } from './managers/metadataCascadePolicies.js';
import { SearchManager } from './managers/search.js';
import { UserCollaborationsManager } from './managers/userCollaborations.js';
import { TaskAssignmentsManager } from './managers/taskAssignments.js';
import { SharedLinksFilesManager } from './managers/sharedLinksFiles.js';
import { SharedLinksFoldersManager } from './managers/sharedLinksFolders.js';
import { WebLinksManager } from './managers/webLinks.js';
import { TrashedWebLinksManager } from './managers/trashedWebLinks.js';
import { SharedLinksWebLinksManager } from './managers/sharedLinksWebLinks.js';
import { SharedLinksAppItemsManager } from './managers/sharedLinksAppItems.js';
import { UsersManager } from './managers/users.js';
import { SessionTerminationManager } from './managers/sessionTermination.js';
import { AvatarsManager } from './managers/avatars.js';
import { TransferManager } from './managers/transfer.js';
import { EmailAliasesManager } from './managers/emailAliases.js';
import { MembershipsManager } from './managers/memberships.js';
import { InvitesManager } from './managers/invites.js';
import { GroupsManager } from './managers/groups.js';
import { WebhooksManager } from './managers/webhooks.js';
import { EventsManager } from './managers/events.js';
import { CollectionsManager } from './managers/collections.js';
import { RecentItemsManager } from './managers/recentItems.js';
import { RetentionPoliciesManager } from './managers/retentionPolicies.js';
import { RetentionPolicyAssignmentsManager } from './managers/retentionPolicyAssignments.js';
import { LegalHoldPoliciesManager } from './managers/legalHoldPolicies.js';
import { LegalHoldPolicyAssignmentsManager } from './managers/legalHoldPolicyAssignments.js';
import { FileVersionRetentionsManager } from './managers/fileVersionRetentions.js';
import { FileVersionLegalHoldsManager } from './managers/fileVersionLegalHolds.js';
import { ShieldInformationBarriersManager } from './managers/shieldInformationBarriers.js';
import { ShieldInformationBarrierReportsManager } from './managers/shieldInformationBarrierReports.js';
import { ShieldInformationBarrierSegmentsManager } from './managers/shieldInformationBarrierSegments.js';
import { ShieldInformationBarrierSegmentMembersManager } from './managers/shieldInformationBarrierSegmentMembers.js';
import { ShieldInformationBarrierSegmentRestrictionsManager } from './managers/shieldInformationBarrierSegmentRestrictions.js';
import { DevicePinnersManager } from './managers/devicePinners.js';
import { TermsOfServicesManager } from './managers/termsOfServices.js';
import { TermsOfServiceUserStatusesManager } from './managers/termsOfServiceUserStatuses.js';
import { CollaborationAllowlistEntriesManager } from './managers/collaborationAllowlistEntries.js';
import { CollaborationAllowlistExemptTargetsManager } from './managers/collaborationAllowlistExemptTargets.js';
import { StoragePoliciesManager } from './managers/storagePolicies.js';
import { StoragePolicyAssignmentsManager } from './managers/storagePolicyAssignments.js';
import { ZipDownloadsManager } from './managers/zipDownloads.js';
import { SignRequestsManager } from './managers/signRequests.js';
import { WorkflowsManager } from './managers/workflows.js';
import { SignTemplatesManager } from './managers/signTemplates.js';
import { IntegrationMappingsManager } from './managers/integrationMappings.js';
import { AiManager } from './managers/ai.js';
import { AiStudioManager } from './managers/aiStudio.js';
import { MetadataTaxonomiesManager } from './managers/metadataTaxonomies.js';
import { DocgenTemplateManager } from './managers/docgenTemplate.js';
import { DocgenManager } from './managers/docgen.js';
import { EnterpriseConfigurationsManager } from './managers/enterpriseConfigurations.js';
import { HubsManager } from './managers/hubs.js';
import { HubCollaborationsManager } from './managers/hubCollaborations.js';
import { HubItemsManager } from './managers/hubItems.js';
import { HubDocumentManager } from './managers/hubDocument.js';
import { ShieldListsManager } from './managers/shieldLists.js';
import { ArchivesManager } from './managers/archives.js';
import { ExternalUsersManager } from './managers/externalUsers.js';
import { AutomateWorkflowsManager } from './managers/automateWorkflows.js';
import { Authentication } from './networking/auth.js';
import { NetworkSession } from './networking/network.js';
import { FetchResponse } from './networking/fetchResponse.js';
import { TimeoutConfig } from './networking/timeoutConfig.js';
import { ProxyConfig } from './networking/proxyConfig.js';
import { AgentOptions } from './internal/utils.js';
import { Interceptor } from './networking/interceptors.js';
export declare class BoxClient {
    readonly auth: Authentication;
    readonly networkSession: NetworkSession;
    readonly authorization: AuthorizationManager;
    readonly files: FilesManager;
    readonly trashedFiles: TrashedFilesManager;
    readonly appItemAssociations: AppItemAssociationsManager;
    readonly downloads: DownloadsManager;
    readonly uploads: UploadsManager;
    readonly chunkedUploads: ChunkedUploadsManager;
    readonly listCollaborations: ListCollaborationsManager;
    readonly comments: CommentsManager;
    readonly tasks: TasksManager;
    readonly fileVersions: FileVersionsManager;
    readonly fileMetadata: FileMetadataManager;
    readonly fileClassifications: FileClassificationsManager;
    readonly skills: SkillsManager;
    readonly fileWatermarks: FileWatermarksManager;
    readonly fileRequests: FileRequestsManager;
    readonly folders: FoldersManager;
    readonly trashedFolders: TrashedFoldersManager;
    readonly folderMetadata: FolderMetadataManager;
    readonly folderClassifications: FolderClassificationsManager;
    readonly trashedItems: TrashedItemsManager;
    readonly folderWatermarks: FolderWatermarksManager;
    readonly folderLocks: FolderLocksManager;
    readonly metadataTemplates: MetadataTemplatesManager;
    readonly classifications: ClassificationsManager;
    readonly metadataCascadePolicies: MetadataCascadePoliciesManager;
    readonly search: SearchManager;
    readonly userCollaborations: UserCollaborationsManager;
    readonly taskAssignments: TaskAssignmentsManager;
    readonly sharedLinksFiles: SharedLinksFilesManager;
    readonly sharedLinksFolders: SharedLinksFoldersManager;
    readonly webLinks: WebLinksManager;
    readonly trashedWebLinks: TrashedWebLinksManager;
    readonly sharedLinksWebLinks: SharedLinksWebLinksManager;
    readonly sharedLinksAppItems: SharedLinksAppItemsManager;
    readonly users: UsersManager;
    readonly sessionTermination: SessionTerminationManager;
    readonly avatars: AvatarsManager;
    readonly transfer: TransferManager;
    readonly emailAliases: EmailAliasesManager;
    readonly memberships: MembershipsManager;
    readonly invites: InvitesManager;
    readonly groups: GroupsManager;
    readonly webhooks: WebhooksManager;
    readonly events: EventsManager;
    readonly collections: CollectionsManager;
    readonly recentItems: RecentItemsManager;
    readonly retentionPolicies: RetentionPoliciesManager;
    readonly retentionPolicyAssignments: RetentionPolicyAssignmentsManager;
    readonly legalHoldPolicies: LegalHoldPoliciesManager;
    readonly legalHoldPolicyAssignments: LegalHoldPolicyAssignmentsManager;
    readonly fileVersionRetentions: FileVersionRetentionsManager;
    readonly fileVersionLegalHolds: FileVersionLegalHoldsManager;
    readonly shieldInformationBarriers: ShieldInformationBarriersManager;
    readonly shieldInformationBarrierReports: ShieldInformationBarrierReportsManager;
    readonly shieldInformationBarrierSegments: ShieldInformationBarrierSegmentsManager;
    readonly shieldInformationBarrierSegmentMembers: ShieldInformationBarrierSegmentMembersManager;
    readonly shieldInformationBarrierSegmentRestrictions: ShieldInformationBarrierSegmentRestrictionsManager;
    readonly devicePinners: DevicePinnersManager;
    readonly termsOfServices: TermsOfServicesManager;
    readonly termsOfServiceUserStatuses: TermsOfServiceUserStatusesManager;
    readonly collaborationAllowlistEntries: CollaborationAllowlistEntriesManager;
    readonly collaborationAllowlistExemptTargets: CollaborationAllowlistExemptTargetsManager;
    readonly storagePolicies: StoragePoliciesManager;
    readonly storagePolicyAssignments: StoragePolicyAssignmentsManager;
    readonly zipDownloads: ZipDownloadsManager;
    readonly signRequests: SignRequestsManager;
    readonly workflows: WorkflowsManager;
    readonly signTemplates: SignTemplatesManager;
    readonly integrationMappings: IntegrationMappingsManager;
    readonly ai: AiManager;
    readonly aiStudio: AiStudioManager;
    readonly metadataTaxonomies: MetadataTaxonomiesManager;
    readonly docgenTemplate: DocgenTemplateManager;
    readonly docgen: DocgenManager;
    readonly enterpriseConfigurations: EnterpriseConfigurationsManager;
    readonly hubs: HubsManager;
    readonly hubCollaborations: HubCollaborationsManager;
    readonly hubItems: HubItemsManager;
    readonly hubDocument: HubDocumentManager;
    readonly shieldLists: ShieldListsManager;
    readonly archives: ArchivesManager;
    readonly externalUsers: ExternalUsersManager;
    readonly automateWorkflows: AutomateWorkflowsManager;
    constructor(fields: Omit<BoxClient, 'authorization' | 'files' | 'trashedFiles' | 'appItemAssociations' | 'downloads' | 'uploads' | 'chunkedUploads' | 'listCollaborations' | 'comments' | 'tasks' | 'fileVersions' | 'fileMetadata' | 'fileClassifications' | 'skills' | 'fileWatermarks' | 'fileRequests' | 'folders' | 'trashedFolders' | 'folderMetadata' | 'folderClassifications' | 'trashedItems' | 'folderWatermarks' | 'folderLocks' | 'metadataTemplates' | 'classifications' | 'metadataCascadePolicies' | 'search' | 'userCollaborations' | 'taskAssignments' | 'sharedLinksFiles' | 'sharedLinksFolders' | 'webLinks' | 'trashedWebLinks' | 'sharedLinksWebLinks' | 'sharedLinksAppItems' | 'users' | 'sessionTermination' | 'avatars' | 'transfer' | 'emailAliases' | 'memberships' | 'invites' | 'groups' | 'webhooks' | 'events' | 'collections' | 'recentItems' | 'retentionPolicies' | 'retentionPolicyAssignments' | 'legalHoldPolicies' | 'legalHoldPolicyAssignments' | 'fileVersionRetentions' | 'fileVersionLegalHolds' | 'shieldInformationBarriers' | 'shieldInformationBarrierReports' | 'shieldInformationBarrierSegments' | 'shieldInformationBarrierSegmentMembers' | 'shieldInformationBarrierSegmentRestrictions' | 'devicePinners' | 'termsOfServices' | 'termsOfServiceUserStatuses' | 'collaborationAllowlistEntries' | 'collaborationAllowlistExemptTargets' | 'storagePolicies' | 'storagePolicyAssignments' | 'zipDownloads' | 'signRequests' | 'workflows' | 'signTemplates' | 'integrationMappings' | 'ai' | 'aiStudio' | 'metadataTaxonomies' | 'docgenTemplate' | 'docgen' | 'enterpriseConfigurations' | 'hubs' | 'hubCollaborations' | 'hubItems' | 'hubDocument' | 'shieldLists' | 'archives' | 'externalUsers' | 'automateWorkflows' | 'networkSession' | 'makeRequest' | 'withAsUserHeader' | 'withSuppressedNotifications' | 'withExtraHeaders' | 'withCustomBaseUrls' | 'withProxy' | 'withTimeouts' | 'withCustomAgentOptions' | 'withInterceptors'> & Partial<Pick<BoxClient, 'networkSession'>>);
    /**
     * Make a custom http request using the client authentication and network session.
     * @param {FetchOptionsInput} fetchOptionsInput Options to be passed to the fetch call
     * @returns {Promise<FetchResponse>}
     */
    makeRequest(fetchOptionsInput: FetchOptionsInput): Promise<FetchResponse>;
    /**
     * Create a new client to impersonate user with the provided ID. All calls made with the new client will be made in context of the impersonated user, leaving the original client unmodified.
     * @param {string} userId ID of an user to impersonate
     * @returns {BoxClient}
     */
    withAsUserHeader(userId: string): BoxClient;
    /**
     * Create a new client with suppressed notifications. Calls made with the new client will not trigger email or webhook notifications
     * @returns {BoxClient}
     */
    withSuppressedNotifications(): BoxClient;
    /**
       * Create a new client with a custom set of headers that will be included in every API call
       * @param {{
          readonly [key: string]: string;
      }} extraHeaders Custom set of headers that will be included in every API call
       * @returns {BoxClient}
       */
    withExtraHeaders(extraHeaders?: {
        readonly [key: string]: string;
    }): BoxClient;
    /**
     * Create a new client with a custom set of base urls that will be used for every API call
     * @param {BaseUrlsInput} baseUrlsInput Custom set of base urls that will be used for every API call
     * @returns {BoxClient}
     */
    withCustomBaseUrls(baseUrlsInput: BaseUrlsInput): BoxClient;
    /**
     * Create a new client with a custom proxy that will be used for every API call
     * @param {ProxyConfig} config
     * @returns {BoxClient}
     */
    withProxy(config: ProxyConfig): BoxClient;
    /**
     * Create a new client with custom timeouts that will be used for every API call
     * @param {TimeoutConfig} config Timeout configuration.
     * @returns {BoxClient}
     */
    withTimeouts(config: TimeoutConfig): BoxClient;
    /**
     * Create a new client with a custom set of agent options that will be used for every API call
     * @param {AgentOptions} agentOptions Custom set of agent options that will be used for every API call
     * @returns {BoxClient}
     */
    withCustomAgentOptions(agentOptions: AgentOptions): BoxClient;
    /**
     * Create a new client with a custom set of interceptors that will be used for every API call
     * @param {readonly Interceptor[]} interceptors Custom set of interceptors that will be used for every API call
     * @returns {BoxClient}
     */
    withInterceptors(interceptors: readonly Interceptor[]): BoxClient;
}
export interface BoxClientInput {
    readonly auth: Authentication;
    readonly networkSession?: NetworkSession;
}
