export interface PreparedBrowserUpload { readonly uploadId: string; readonly fileId: string; readonly size: number; readonly putUrl: string; readonly commitUrl: string; readonly deleteUrl: string; } export interface StreamedBrowserUpload { readonly received: number; readonly sourceSha256: string; } export interface ReadyBrowserAttachment { readonly fileRef: string; readonly fileId: string; readonly displayName: string; readonly detectedType: string; readonly size: number; readonly sourceSha256: string; readonly draft: boolean; } export interface ResolvedBrowserAttachment { readonly fileRef: string; readonly displayName: string; readonly detectedType: string; readonly size: number; readonly sourceSha256: string; } export interface AttachmentUploadApi { prepare(sessionId: string, file: File, signal?: AbortSignal): Promise; upload(url: string, file: File, onProgress: (loaded: number, total: number) => void, signal: AbortSignal): Promise; commit(url: string, sessionId: string, prepared: PreparedBrowserUpload, streamed: StreamedBrowserUpload, signal?: AbortSignal): Promise; cancel(url: string): Promise; adopt(sessionId: string, fileId: string): Promise; } export declare function attachmentContentUrl(sessionId: string, fileRef: string, baseUrl?: string): string; export declare class BrowserAttachmentUploadApi implements AttachmentUploadApi { private readonly baseUrl; constructor(baseUrl?: string); prepare(sessionId: string, file: File, signal?: AbortSignal): Promise; upload(url: string, file: File, onProgress: (loaded: number, total: number) => void, signal: AbortSignal): Promise; commit(url: string, sessionId: string, _prepared: PreparedBrowserUpload, streamed: StreamedBrowserUpload, signal?: AbortSignal): Promise; cancel(url: string): Promise; adopt(sessionId: string, fileId: string): Promise; resolve(sessionId: string, fileRef: string): Promise; }