import { BodyData } from 'hono/utils/body'; import { StorageFile } from '../../storage/storage'; import { UploadOptions } from '../options'; import { THonoRequest } from '../request'; export interface ProcessedFile { file: StorageFile; fieldName: string; } export interface FileProcessResult { body: BodyData; remove: () => Promise; } export interface SingleFileResult extends FileProcessResult { file?: StorageFile; } export interface MultipleFilesResult extends FileProcessResult { files: StorageFile[]; } export interface FileFieldsResult extends FileProcessResult { files: Record; } export declare class FileHandler { private readonly req; private readonly options; private readonly body; private readonly files; private readonly filesByField; private processed; private cleanedUp; constructor(req: THonoRequest, options: UploadOptions); process(processor: (fieldName: string, file: File) => Promise): Promise; handleSingleFile(fieldName: string, file: File): Promise; validateFieldName(fieldName: string, expectedFieldName: string): void; validateSingleFile(currentFile: StorageFile | undefined): void; validateMaxCount(fieldName: string, currentCount: number, maxCount: number): void; addFile(fieldName: string, file: StorageFile): void; getFiles(): StorageFile[]; getFilesByField(): Record; getBody(): BodyData; cleanup(error?: boolean): Promise; createRemoveFunction(): () => Promise; }