import React, { RefObject, ComponentType, CSSProperties } from 'react';
import { CropperImage, CropperState, CropperTransitions, Size } from 'advanced-cropper';
import { ArbitraryProps, CropperBoundaryComponent } from '../../types';
interface DesiredCropperRef {
    getState: () => CropperState | null;
    getImage: () => CropperImage | null;
    getTransitions: () => CropperTransitions;
    isLoading: () => boolean;
    isLoaded: () => boolean;
}
export interface CropperPreviewRef {
    refresh: () => void;
    update: (cropper?: DesiredCropperRef) => void;
}
declare type PreviewWrapperComponent = ComponentType<{
    cropper: any;
    className?: string;
    style?: CSSProperties;
    loading?: boolean;
    loaded?: boolean;
}>;
declare type PreviewBackgroundComponent = ComponentType<{
    cropper: any;
    size: Size | null;
    className?: string;
}>;
interface Props {
    state?: CropperState | null;
    image?: CropperImage | null;
    transitions?: CropperTransitions | null;
    loading?: boolean;
    loaded?: boolean;
    className?: string;
    contentClassName?: string;
    backgroundClassName?: string;
    backgroundComponent?: PreviewBackgroundComponent;
    backgroundProps?: ArbitraryProps;
    boundaryComponent?: CropperBoundaryComponent;
    boundaryProps?: ArbitraryProps;
    boundaryClassName?: string;
    wrapperComponent?: PreviewWrapperComponent;
    wrapperProps?: ArbitraryProps;
    style?: CSSProperties;
    cropper?: RefObject<DesiredCropperRef | null>;
}
export declare const CropperPreview: React.ForwardRefExoticComponent<Props & React.RefAttributes<CropperPreviewRef>>;
export {};
