import { UploadOptions as UploadOptions$1, Upload as Upload$1, OnSuccessPayload, HttpResponse, DetailedError } from 'tus-js-client'; type FileBuffer = Buffer & { name: string; type: string; size: number; }; type UploadOptions = { bucketId: string; customerId: string; clientId: string; allowedFileNameCharacters?: string; endpoint?: string; fileTypes?: string[]; fingerprint?: (file: File | FileBuffer, options: UploadOptions$1, callback?: (data: null, key: string) => string) => Promise; maxAvScanRetries?: number; maxSize?: number; onPreStart?: ((upload: Upload) => boolean)[]; pollingTime?: number; retryDelays?: number[]; stripFileNamePathSegments?: boolean; } & Omit; declare class Upload { file: File | FileBuffer; options: UploadOptions & { endpoint: string; maxAvScanRetries: number; retryDelays: number[]; fingerprint: (file: File | FileBuffer, options: UploadOptions$1, callback?: (data: null, key: string) => string) => Promise; }; upload: Upload$1; avScanRetries: number; bytesAccepted: number; bytesScanned: number; bytesSent: number; bytesTotal: number; chunkSize: number; error: Error | null; errorMessage?: string; id: string; onError: ((error: Error) => void)[]; onPreStart: ((upload: Upload) => boolean)[]; onProgress: (() => void)[]; onSuccess: ((response: OnSuccessPayload) => void)[]; onChunkComplete: ((chunkSize: number, bytesAccepted: number, bytesTotal: number | null) => void)[]; percentage: number; preStartValidationResults: boolean[]; references: string[]; s3References: string[]; status: string; timeoutId?: NodeJS.Timeout; waitForPassword: boolean; constructor(file: File | FileBuffer, options: UploadOptions); inStatusCategory(status: number, category: number): boolean; scan(data?: { header: string; value: string; }): Promise; getPercentage(): number; getToken(): string; start(): void; setId(id: string): void; generateId(): Promise; fingerprint(file: File, options: UploadOptions$1, callback: (data: null, key: string) => string): Promise; sendPassword(pw: string): void; isValidSize(): boolean; isAllowedFileTypes(): boolean; isAllowedFileNameCharacters(): boolean; isValidFile(): boolean; trimFileName(fileName: string): string; getResult(response: HttpResponse): { status: string; message: string; }; setError(status: string, message: string, error?: Error | DetailedError): void; parseErrorMessage(message: string, error?: Error | DetailedError): void; abort(): void; } export { type FileBuffer, type UploadOptions, Upload as default };