/**
 * 裁剪头像上传
 */
import React, { Component } from 'react';
import { AxiosRequestConfig } from 'axios';
import { ModalProps } from '../modal';
import { UploadProps } from '../upload';
import ConfigContext, { ConfigContextValue } from '../config-provider/ConfigContext';
export interface Limit {
    size: number;
    type: string;
}
export interface AvatarArea {
    rotate: number;
    startX: number;
    startY: number;
    endX: number;
    endY: number;
    file?: File;
}
export interface AvatarUploadProps {
    visible: boolean;
    onClose?: (visible: boolean) => void;
    onUploadOk?: (res: any) => void;
    uploadUrl?: string;
    uploadFaild?: () => void;
    uploadError?: (error: any) => void;
    handleUpload?: (area: AvatarArea) => void;
    cropComplete?: (imageState: any) => void;
    title?: string | React.ReactElement;
    previewTitle?: string | React.ReactElement;
    reloadTitle?: string | React.ReactElement;
    uploadProps?: UploadProps;
    modalProps?: ModalProps;
    limit: Limit;
    previewList: number[];
    editorWidth: number;
    editorHeight: number;
    rectSize: number;
    axiosConfig?: AxiosRequestConfig;
    prefixCls?: string;
}
export default class AvatarUploader extends Component<AvatarUploadProps, any> {
    static get contextType(): typeof ConfigContext;
    static defaultProps: {
        limit: {
            type: string;
            size: number;
        };
        previewList: number[];
        editorWidth: number;
        editorHeight: number;
        rectSize: number;
    };
    context: ConfigContextValue;
    constructor(props: any, context: ConfigContextValue);
    zoomImage: (type: any) => void;
    handleOk: () => void;
    close(): void;
    uploadOk(res: any): void;
    handleCancel: () => void;
    initImageSize(img: any, rotate?: number): void;
    onComplete(imgState: any): void;
    loadImage(src: any): void;
    getPreviewProps(previewSize: any): object;
    renderPreviewItem(previewSizeList: any): any;
    renderEditor(props: any): JSX.Element;
    getUploadProps(): UploadProps;
    renderContainer(): JSX.Element;
    render(): JSX.Element;
}
