import { Ref } from 'vue';
import { CropperOptions } from './types';
import { default as PreviewType } from './components/cropper-preview';

export type PreviewInstance = InstanceType<typeof PreviewType> | null;
declare const _default: import('vue').DefineComponent<{
    height: StringConstructor;
    src: StringConstructor;
    imageType: {
        type: StringConstructor;
        default: string;
    };
    accept: {
        type: StringConstructor;
        default: string;
    };
    tools: {
        type: StringConstructor;
        default: string;
    };
    preview: {
        type: BooleanConstructor;
        default: boolean;
    };
    previewWidth: {
        type: NumberConstructor;
        default: number;
    };
    toBlob: BooleanConstructor;
    options: import('vue').PropType<CropperOptions>;
    croppedOptions: import('vue').PropType<import('./types').CroppedOptions>;
    tooltip: {
        type: BooleanConstructor;
        default: boolean;
    };
    tooltipProps: import('vue').PropType<import('../ele-app/plus').EleTooltipProps>;
    beforeUploadClick: import('vue').PropType<import('./types').BeforeUploadClick>;
    responsive: {
        type: BooleanConstructor;
        default: null;
    };
    locale: import('vue').PropType<Partial<import('./types').CropperLocale>>;
}, {
    imageRef: Ref<HTMLImageElement | null>;
    previewRef: Ref<PreviewInstance>;
    isResponsive: import('vue').ComputedRef<boolean>;
    handleZoomIn: () => void;
    handleZoomOut: () => void;
    handleMoveLeft: () => void;
    handleMoveRight: () => void;
    handleMoveUp: () => void;
    handleMoveDown: () => void;
    handleRotateLeft: () => void;
    handleRotateRight: () => void;
    handleFlipX: () => void;
    handleFlipY: () => void;
    handleReset: () => void;
    handleUpload: ({ data, type }: {
        data: string;
        type: string;
    }) => void;
    handleOk: () => void;
}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    done: (_result?: Blob | string | null) => boolean;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    height: StringConstructor;
    src: StringConstructor;
    imageType: {
        type: StringConstructor;
        default: string;
    };
    accept: {
        type: StringConstructor;
        default: string;
    };
    tools: {
        type: StringConstructor;
        default: string;
    };
    preview: {
        type: BooleanConstructor;
        default: boolean;
    };
    previewWidth: {
        type: NumberConstructor;
        default: number;
    };
    toBlob: BooleanConstructor;
    options: import('vue').PropType<CropperOptions>;
    croppedOptions: import('vue').PropType<import('./types').CroppedOptions>;
    tooltip: {
        type: BooleanConstructor;
        default: boolean;
    };
    tooltipProps: import('vue').PropType<import('../ele-app/plus').EleTooltipProps>;
    beforeUploadClick: import('vue').PropType<import('./types').BeforeUploadClick>;
    responsive: {
        type: BooleanConstructor;
        default: null;
    };
    locale: import('vue').PropType<Partial<import('./types').CropperLocale>>;
}>> & {
    onDone?: ((_result?: string | Blob | null | undefined) => any) | undefined;
}, {
    tooltip: boolean;
    preview: boolean;
    responsive: boolean;
    imageType: string;
    accept: string;
    tools: string;
    previewWidth: number;
    toBlob: boolean;
}, {}>;
export default _default;
