import { FUploadFileExtend, UploadFile, UploadInput, UploadOutput, UploaderOptions } from "../composition/type";
import { Ref, SetupContext } from "vue";
export declare class UploaderService {
    private stateChangeRecord;
    private serverToken;
    queue: UploadFile[];
    uploadOpts: UploaderOptions;
    /**
     * 服务器端扩展
     */
    private extendServerConfig;
    private uploadServerSer;
    private uploadContext;
    constructor(stateChangeRecord: Ref<UploadOutput>, serverToken: string);
    setUploadContext(context: SetupContext): void;
    /**
     * 处理从服务器端返回的结果
     */
    private handleResultFromServer;
    setOptions(options: UploaderOptions): void;
    /**
     * 处理上传的附件信息
     * @param incomingFiles
     */
    handleFiles(incomingFiles: FileList): void;
    /**
     * 获取上传被拒绝的理由
     * @param name
     * @param queuelength
     * @param size
     * @returns
     */
    rejectedReason(name: string, queuelength: number, size: number): {
        allowed: boolean;
        message: string;
    };
    /**
     * 超出最大上传数值
     * @param queuelength
     * @returns
     */
    private exceedMaxUpload;
    /**
     * 从前端传来事件，进行服务器端方法类型判断
     * @param input
     */
    handleUploadEvent(event: UploadInput): void;
    /**
     * 处理上传的扩展参数
     * @param extendSer
     */
    setExtendServerConfig(extendSer: any): void;
    /**
     * 处理服务器接口的方法
     * @param upload
     * @returns
     */
    serverMethod(upload: {
        event: UploadInput;
        files: UploadFile[] | FUploadFileExtend[];
    }): void;
    /**
     * 上传附件
     * @param files
     * @param event
     * @returns
     */
    upload(files: UploadFile[], event: UploadInput, eventEmit: (any: any) => void): Promise<UploadOutput>;
    /**
     * 删除附件
     * @param files
     * @param event
     * @returns
     */
    remove(files: FUploadFileExtend[], event: UploadInput, eventEmit: (any: any) => void): Promise<UploadOutput>;
    /**
     * 重置
     */
    reset(): void;
    /**
     * 销毁
     */
    destroyed(): void;
}
