import { type Nabi } from '../../editor/index.js'; import { type Translator } from '../../locale/index.js'; import { type UploadFile, type UploadLimits, type UploadReject } from '../../wings/upload/upload.js'; export interface UploadTask { readonly id: string; readonly file: UploadFile; readonly name: string; readonly extension: string; readonly size: number; readonly type: string; onProgress(percent: number): void; readonly signal: AbortSignal; } export type Uploader = (task: UploadTask) => Promise<{ readonly uri: string; } | null> | { readonly uri: string; } | null; export interface StartedTask { readonly id: string; readonly file: UploadFile; readonly name: string; readonly size: number; readonly image: boolean; } export interface UploadOptions extends UploadLimits { readonly nabi: Nabi; readonly uploader: Uploader; readonly root?: HTMLElement; readonly onStart?: (tasks: readonly StartedTask[]) => void; readonly onProgress?: (id: string, percent: number) => void; readonly onSettle?: () => void | Promise; readonly onDone?: (result: { readonly committed: number; readonly cancelled: boolean; }) => void; readonly onReject?: (problem: UploadReject) => void; readonly locale?: string; readonly translator?: Translator; } export interface UploadMount { take(files: readonly UploadFile[]): void; isRunning(): boolean; cancel(): void; unmount(): void; } export declare function mountUpload(options: UploadOptions): UploadMount; //# sourceMappingURL=upload.d.ts.map