import { HTMLAttributes, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { PolymorphicProps } from '../factory.js';
import { RootEmits, RootProps } from './image-cropper.types.js';
import { ZoomChangeDetails, RotationChangeDetails, FlipChangeDetails, FlipState, CropChangeDetails } from '@zag-js/image-cropper';
import { Rect } from '@zag-js/types';
export interface ImageCropperRootBaseProps extends RootProps, PolymorphicProps {
}
export interface ImageCropperRootProps extends ImageCropperRootBaseProps, 
/**
 * @vue-ignore
 */
HTMLAttributes {
}
export interface ImageCropperRootEmits extends RootEmits {
}
declare const _default: __VLS_WithTemplateSlots< DefineComponent<ImageCropperRootProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    zoomChange: (details: ZoomChangeDetails) => any;
    "update:zoom": (zoom: number) => any;
    rotationChange: (details: RotationChangeDetails) => any;
    "update:rotation": (rotation: number) => any;
    flipChange: (details: FlipChangeDetails) => any;
    "update:flip": (flip: FlipState) => any;
    cropChange: (details: CropChangeDetails) => any;
    "update:crop": (crop: Rect) => any;
}, string, PublicProps, Readonly<ImageCropperRootProps> & Readonly<{
    onZoomChange?: ((details: ZoomChangeDetails) => any) | undefined;
    "onUpdate:zoom"?: ((zoom: number) => any) | undefined;
    onRotationChange?: ((details: RotationChangeDetails) => any) | undefined;
    "onUpdate:rotation"?: ((rotation: number) => any) | undefined;
    onFlipChange?: ((details: FlipChangeDetails) => any) | undefined;
    "onUpdate:flip"?: ((flip: FlipState) => any) | undefined;
    onCropChange?: ((details: CropChangeDetails) => any) | undefined;
    "onUpdate:crop"?: ((crop: Rect) => any) | undefined;
}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>, {
    default?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
