import { type Api } from '../../api';
import type { AudioUploadResult, FileUploadResult, ImageUploadResult, UploadAudioOptions, UploadFileOptions, UploadImageOptions, UploadVideoOptions, VideoUploadResult } from './types';
export declare class Upload {
    private readonly api;
    private readonly streamUploadClient;
    constructor(api: Api);
    private getStreamFromSource;
    image: ({ timeout, onUploadProgress, ...source }: UploadImageOptions) => Promise<ImageUploadResult | {
        url: string;
    }>;
    video: ({ source, ...options }: UploadVideoOptions) => Promise<VideoUploadResult>;
    file: ({ source, ...options }: UploadFileOptions) => Promise<FileUploadResult>;
    audio: ({ source, ...options }: UploadAudioOptions) => Promise<AudioUploadResult>;
    private upload;
    private uploadFromStream;
    private uploadFromBuffer;
    private uploadMultipart;
    private uploadRangeChunk;
    private createProgressHandler;
    private uploadRange;
}
