interface Options {
    limit?: number;
    accept?: string;
    minSize?: number;
    maxSize?: number;
    autoUpload?: boolean;
}
export type UploadItem = {
    idx: string;
    url: string;
    status: "pending" | "done" | "error";
};
export type UploaderEventMap = {
    start: (data: UploadItem[]) => void;
    progress: (data: UploadItem[]) => void;
    end: (data: UploadItem[]) => void;
};
export type UploaderServer = (file: Blob) => Promise<string>;
export declare class Uploader {
    private options;
    private el;
    private uploadServer;
    private handler;
    constructor(uploadServer: UploaderServer, options: Options);
    private createInput;
    uploadFiles(files: File[]): Promise<void>;
    private uploadFile;
    private checkFile;
    private checkTypes;
    private checkSize;
    chooseFile(): void;
    on<K extends keyof UploaderEventMap>(event: K, fn: UploaderEventMap[K]): void;
    off<K extends keyof UploaderEventMap>(event: K, fn: UploaderEventMap[K]): void;
}
export {};
