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

declare const uiEvents: readonly ["mousedown", "mouseup", "click", "dblclick", "rightclick", "mouseover", "mouseout", "mousemove"];
type InfoWindowOptions = {
    /**
     * position
     * @type naver.maps.Coord | naver.maps.CoordLiteral
     */
    position?: naver.maps.Coord | naver.maps.CoordLiteral;
    content: string;
    zIndex?: number;
    maxWidth?: number;
    /**
     * @type naver.maps.Point | naver.maps.PointLiteral
     */
    pixelOffset?: naver.maps.Point | naver.maps.PointLiteral;
    backgroundColor?: string;
    borderColor?: string;
    borderWidth?: number;
    disableAutoPan?: boolean;
    disableAnchor?: boolean;
    anchorSkew?: boolean;
    /**
     * @type naver.maps.Size | naver.maps.SizeLiteral
     */
    anchorSize?: naver.maps.Size | naver.maps.SizeLiteral;
    anchorColor?: string;
};
type Props = InfoWindowOptions & {
    onPositionChanged?: (value: naver.maps.Coord) => void;
    onContentChanged?: (value: HTMLElement) => void;
    onZIndexChanged?: (value: number) => void;
    onMaxWidthChanged?: (value: number) => void;
    onPixelOffsetChanged?: (value: naver.maps.Point) => void;
    onBackgroundColorChanged?: (value: string) => void;
    onBorderColorChanged?: (value: string) => void;
    onBorderWidthChanged?: (value: number) => void;
    onDisableAutoPanChanged?: (value: boolean) => void;
    onDisableAnchorChanged?: (value: boolean) => void;
    onAnchorSkewChanged?: (value: boolean) => void;
    onAnchorSizeChanged?: (value: naver.maps.Size) => void;
    onAnchorColorChanged?: (value: string) => void;
} & UIEventHandlers<typeof uiEvents>;
declare const InfoWindow: react.ForwardRefExoticComponent<InfoWindowOptions & {
    onPositionChanged?: (value: naver.maps.Coord) => void;
    onContentChanged?: (value: HTMLElement) => void;
    onZIndexChanged?: (value: number) => void;
    onMaxWidthChanged?: (value: number) => void;
    onPixelOffsetChanged?: (value: naver.maps.Point) => void;
    onBackgroundColorChanged?: (value: string) => void;
    onBorderColorChanged?: (value: string) => void;
    onBorderWidthChanged?: (value: number) => void;
    onDisableAutoPanChanged?: (value: boolean) => void;
    onDisableAnchorChanged?: (value: boolean) => void;
    onAnchorSkewChanged?: (value: boolean) => void;
    onAnchorSizeChanged?: (value: naver.maps.Size) => void;
    onAnchorColorChanged?: (value: string) => void;
} & Partial<Record<"onClick" | "onMousedown" | "onMouseup" | "onDblclick" | "onRightclick" | "onMouseover" | "onMouseout" | "onMousemove", (e: naver.maps.PointerEvent) => void>> & react.RefAttributes<naver.maps.InfoWindow>>;

export { InfoWindow, type Props };
