import { type AttachmentMeta, type Capabilities, type DraftInput, type EmailAddress, type EmailProvider, type EmailQuery, type Folder, type GetAttachmentOpts, type GetMessageOpts, type Label, type Message, type ModifyAction, type MessageSearchPage, type PageOpts, type SendResult, type Thread } from '@fluxmail/core'; export interface MicrosoftAccessTokenProvider { getAccessToken(forceRefresh?: boolean): Promise; } export interface OutlookProviderOptions { accountId: string; tokenProvider: MicrosoftAccessTokenProvider; fetch?: typeof globalThis.fetch; resolveSender?: (email: string) => EmailAddress | undefined; } export declare const OUTLOOK_CAPABILITIES: Capabilities; export declare class OutlookProvider implements EmailProvider { private readonly accountId; private readonly tokenProvider; private readonly fetchImpl; private readonly resolveSender; private folderCache; constructor(options: OutlookProviderOptions); get capabilities(): Capabilities; private url; private request; testConnection(): Promise; private collection; private folderSnapshot; listFolders(): Promise; listLabels(): Promise; private resolveCategoryNames; private resolveFolder; listMessages(input: EmailQuery, page?: PageOpts): Promise; private rawMessage; getMessage(id: string, options?: GetMessageOpts): Promise; getThread(threadId: string): Promise; private draftPayload; private decodedAttachment; private addAttachment; private replaceAttachments; createDraft(draft: DraftInput): Promise; getDraft(draftId: string): Promise; updateDraft(draftId: string, draft: DraftInput): Promise; deleteDraft(draftId: string): Promise; send(input: DraftInput | { draftId: string; }): Promise; private move; private assertMessagesOutsideTrash; modify(ids: string[], action: ModifyAction): Promise; getAttachment(messageId: string, attachmentId: string, options?: GetAttachmentOpts): Promise<{ meta: AttachmentMeta; content: Buffer; }>; } //# sourceMappingURL=outlookProvider.d.ts.map