import { CSSProperties, FC, ReactNode } from 'react';
import { AbstractCropperIntrinsicProps, AbstractCropperRef, AbstractCropperSettings } from './components/AbstractCropper';
export declare type ArbitraryProps = Record<string, any>;
export declare type StencilComponent = any;
export declare type CropperWrapperComponent = FC<{
    cropper: any;
    className?: string;
    style?: CSSProperties;
    children?: ReactNode;
}>;
export declare type CropperBoundaryComponent = any;
export declare type CropperBackgroundComponent = any;
export declare type CropperBackgroundWrapperComponent = FC<{
    cropper: any;
    children?: ReactNode;
    className?: string;
    style?: CSSProperties;
    disabled?: boolean;
}>;
export declare type StencilOptions = Record<string, unknown>;
export declare type StencilConstraints<Settings extends {}> = (settings: Settings, stencilOptions: StencilOptions) => Partial<Settings>;
export interface ScaleImageOptions {
    touch?: boolean;
    wheel?: boolean | {
        ratio?: number;
    };
    adjustStencil?: boolean;
}
export interface RotateImageOptions {
    touch?: boolean;
}
export interface MoveImageOptions {
    touch?: boolean;
    mouse?: boolean;
}
export declare type CustomCropperProps<Extension extends SettingsExtension = {}> = AbstractCropperIntrinsicProps<ExtendedSettings<Extension>> & Partial<Pick<ExtendedSettings<Extension>, keyof AbstractCropperSettings>> & Omit<ExtendedSettings<Extension>, keyof AbstractCropperSettings>;
export declare type CustomCropperRef<Extension extends SettingsExtension = {}> = AbstractCropperRef<ExtendedSettings<Extension>>;
export declare type ExtendedSettings<Extension extends {} = {}> = Extension & AbstractCropperSettings;
export declare type SettingsExtension = object;
