import * as react from 'react';
import { UIEventHandlers } from '../types/event.js';

declare const uiEvents: readonly ["mousedown", "mouseup", "click", "dblclick", "rightclick", "mouseover", "mouseout", "mousemove"];
type EllipseOptions = {
    /**
     * bounds
     * @type naver.maps.Bounds | naver.maps.BoundsLiteral
     */
    bounds: naver.maps.Bounds | naver.maps.BoundsLiteral;
    strokeWeight?: number;
    strokeOpacity?: number;
    strokeColor?: string;
    strokeStyle?: naver.maps.StrokeStyleType;
    strokeLineCap?: naver.maps.StrokeLineCapType;
    strokeLineJoin?: naver.maps.StrokeLineJoinType;
    fillColor?: string;
    fillOpacity?: number;
    clickable?: boolean;
    visible?: boolean;
    zIndex?: number;
};
type Props = EllipseOptions & {
    onBoundsChanged?: (value: naver.maps.Bounds) => void;
    onStrokeWeightChanged?: (value: number) => void;
    onStrokeOpacityChanged?: (value: number) => void;
    onStrokeColorChanged?: (value: string) => void;
    onStrokeStyleChanged?: (value: naver.maps.StrokeStyleType) => void;
    onStrokeLineCapChanged?: (value: naver.maps.StrokeLineCapType) => void;
    onStrokeLineJoinChanged?: (value: naver.maps.StrokeLineJoinType) => void;
    onFillColorChanged?: (value: string) => void;
    onFillOpacityChanged?: (value: number) => void;
    onClickableChanged?: (event: boolean) => void;
    onVisibleChanged?: (event: boolean) => void;
    onZIndexChanged?: (event: number) => void;
} & UIEventHandlers<typeof uiEvents>;
declare const Ellipse: react.ForwardRefExoticComponent<EllipseOptions & {
    onBoundsChanged?: (value: naver.maps.Bounds) => void;
    onStrokeWeightChanged?: (value: number) => void;
    onStrokeOpacityChanged?: (value: number) => void;
    onStrokeColorChanged?: (value: string) => void;
    onStrokeStyleChanged?: (value: naver.maps.StrokeStyleType) => void;
    onStrokeLineCapChanged?: (value: naver.maps.StrokeLineCapType) => void;
    onStrokeLineJoinChanged?: (value: naver.maps.StrokeLineJoinType) => void;
    onFillColorChanged?: (value: string) => void;
    onFillOpacityChanged?: (value: number) => void;
    onClickableChanged?: (event: boolean) => void;
    onVisibleChanged?: (event: boolean) => void;
    onZIndexChanged?: (event: number) => void;
} & Partial<Record<"onClick" | "onMousedown" | "onMouseup" | "onDblclick" | "onRightclick" | "onMouseover" | "onMouseout" | "onMousemove", (e: naver.maps.PointerEvent) => void>> & react.RefAttributes<naver.maps.Ellipse>>;

export { Ellipse, type Props };
