import type { Handler } from "../types"; import type { UploadedFile } from "../types"; import type { BunRequest } from "../core/request"; export interface UploadLimits { fileSize?: number; files?: number; fields?: number; fieldSize?: number; fieldNameSize?: number; parts?: number; } export interface FieldSpec { name: string; maxCount: number; } type FileFilterCallback = (error: Error | null, accept: boolean) => void; type FileFilter = (req: BunRequest, file: { fieldname: string; originalname: string; mimetype: string; encoding: string; }, cb: FileFilterCallback) => void; type DiskDestinationFn = (req: BunRequest, file: { fieldname: string; originalname: string; mimetype: string; }, cb: (error: Error | null, destination: string) => void) => void; type DiskFilenameFn = (req: BunRequest, file: { fieldname: string; originalname: string; mimetype: string; }, cb: (error: Error | null, filename: string) => void) => void; export interface DiskStorageOptions { destination?: string | DiskDestinationFn; filename?: DiskFilenameFn; } export interface UploadOptions { storage?: StorageEngine; limits?: UploadLimits; fileFilter?: FileFilter; preservePath?: boolean; } export interface UploadInstance { single(fieldname: string): Handler; array(fieldname: string, maxCount?: number): Handler; fields(specs: FieldSpec[]): Handler; none(): Handler; any(): Handler; } interface WriteHandle { write(chunk: Uint8Array): void; end(): Promise>; abort(): Promise; } export interface StorageEngine { createWriter(req: BunRequest, fileInfo: { fieldname: string; originalname: string; mimetype: string; encoding: string; }): Promise; } export interface PartHeaders { name: string; filename?: string; contentType: string; encoding: string; } export declare function concat(a: Uint8Array, b: Uint8Array): Uint8Array; export declare function findSequence(data: Uint8Array, needle: Uint8Array, offset?: number): number; export declare function startsWith(data: Uint8Array, prefix: Uint8Array, offset?: number): boolean; export declare function parsePartHeaders(headerBytes: Uint8Array): PartHeaders; export declare function makeUploadError(message: string, status: number): Error; export declare function memoryStorage(): StorageEngine; export declare function diskStorage(options?: DiskStorageOptions): StorageEngine; export interface UploadFactory extends UploadInstance { (options?: UploadOptions): UploadInstance; memoryStorage(): StorageEngine; diskStorage(options?: DiskStorageOptions): StorageEngine; } export declare const upload: UploadFactory; export {}; //# sourceMappingURL=upload.d.ts.map