import { EventEmitter } from '../../stencil-public-runtime';
export interface UploadFile {
    name: string;
    size: number;
    type: string;
    url?: string;
    status: 'ready' | 'uploading' | 'success' | 'error';
    /** 上传进度（0-100），仅 uploading 阶段有意义 */
    progress?: number;
    /** 服务端响应体（成功时） */
    response?: any;
}
export declare class Upload {
    /** 上传地址。设置后启用自动上传；未设置时文件以 ready 状态抛出，由消费方自行上传 */
    action?: string;
    /** 多选 */
    multiple: boolean;
    /** 接受的文件类型 */
    accept?: string;
    /** 是否禁用 */
    disabled: boolean;
    /** 最大上传数量 */
    limit?: number;
    /** 是否拖拽上传 */
    drag: boolean;
    /** 上传字段名 */
    name: string;
    /** 额外的请求头 */
    headers?: Record<string, string>;
    /** 额外的表单数据 */
    data?: Record<string, string>;
    /** 是否携带凭证（cookie） */
    withCredentials: boolean;
    /** 上传前钩子，返回 false / Promise<false> 则取消上传 */
    beforeUpload?: (file: File) => boolean | Promise<boolean>;
    fileList: UploadFile[];
    isDragover: boolean;
    hbChange: EventEmitter<UploadFile[]>;
    hbSuccess: EventEmitter<UploadFile>;
    hbError: EventEmitter<UploadFile>;
    private inputRef?;
    private handleClick;
    private handleChange;
    private handleFiles;
    /** 真实上传：FormData + XHR，带进度回调 */
    private realUpload;
    private parseResponse;
    private handleRemove;
    private handleDrop;
    private handleDragOver;
    private handleDragLeave;
    private formatSize;
    private renderStatus;
    render(): any;
}
