import { default as CortexElement } from '../../../base/src/cortex-element.ts';
import { Unit } from '../../../types/src/asset-link-format';
import { CSSResultGroup, TemplateResult } from 'lit';

type Area = {
    height: number;
    width: number;
    x: number;
    y: number;
};
export type CxCropperCropCompleteEvent = CustomEvent<{
    croppedArea: Area;
}>;
export type CxCropperLoadingChangeEvent = CustomEvent<boolean>;
export default class CxCropper extends CortexElement {
    static readonly styles: CSSResultGroup;
    cropperEl: HTMLElement;
    cropper: {
        height: number;
        keepAspectRatio?: boolean;
        percentageHeight: number;
        percentageWidth: number;
        unit: Unit;
        width: number;
        x: number;
        y: number;
    };
    image: {
        extension: string;
        height: number;
        originalUrl: string;
        rotation: number;
        url: string;
        width: number;
        x: number;
        y: number;
    } | undefined;
    resizer: {
        height: number;
        width: number;
    };
    rotation: number;
    fillImage: boolean;
    disabled: boolean;
    loadable: boolean;
    loading: boolean;
    multiple: boolean;
    useInternalLoading: boolean;
    private showLoading;
    private handleLoadingChange;
    render(): TemplateResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-cropper': CxCropper;
    }
    interface GlobalEventHandlersEventMap {
        'cx-cropper-crop-complete': CxCropperCropCompleteEvent;
        'cx-cropper-loading-change': CxCropperLoadingChangeEvent;
    }
}
export {};
