import type { _NSImage } from "../AppKit/NSImage.js";
import type { _NSView } from "../AppKit/NSView.js";
import type { _MKAnnotation } from "./MKAnnotation.js";
import type { _MKCircle } from "./MKCircle.js";
import type { _MKClusterAnnotation } from "./MKClusterAnnotation.js";
import type { _MKMapItemAnnotation } from "./MKMapItemAnnotation.js";
import type { _MKMultiPolygon } from "./MKMultiPolygon.js";
import type { _MKMultiPolyline } from "./MKMultiPolyline.js";
import type { _MKPlacemark } from "./MKPlacemark.js";
import type { _MKPolygon } from "./MKPolygon.js";
import type { _MKPolyline } from "./MKPolyline.js";
import type { _MKShape } from "./MKShape.js";
import type { _MKTileOverlay } from "./MKTileOverlay.js";
import type { _MKUserLocation } from "./MKUserLocation.js";
import type { _NSCoder } from "../Foundation/NSCoder.js";
import type { _NSString } from "../Foundation/NSString.js";
import type { CGPoint } from "../structs/CGPoint.js";
import type { MKAnnotationViewCollisionMode } from "./MKAnnotationViewCollisionMode.js";
import type { MKAnnotationViewDragState } from "./MKAnnotationViewDragState.js";
export declare class _MKAnnotationView extends _NSView {
    static alloc(): _MKAnnotationView;
    static new(): _MKAnnotationView;
    init(): _MKAnnotationView;
    initWithAnnotation$reuseIdentifier$(annotation: _MKAnnotation | null, reuseIdentifier: _NSString | null): _MKAnnotationView;
    initWithCoder$(aDecoder: _NSCoder): _MKAnnotationView | null;
    /** Classes that override must call super. */
    prepareForReuse(): void;
    prepareForDisplay(): void;
    setSelected$animated$(selected: boolean, animated: boolean): void;
    /**
     * Developers targeting iOS 4.2 and after must use setDragState:animated: instead of setDragState:.
     */
    setDragState$animated$(newDragState: MKAnnotationViewDragState, animated: boolean): void;
    reuseIdentifier(): _NSString | null;
    annotation(): _MKCircle | _MKClusterAnnotation | _MKMapItemAnnotation | _MKMultiPolygon | _MKMultiPolyline | _MKPlacemark | _MKPolygon | _MKPolyline | _MKShape | _MKTileOverlay | _MKUserLocation | null;
    setAnnotation$(value: _MKAnnotation | null): void;
    image(): _NSImage | null;
    setImage$(value: _NSImage | null): void;
    /**
     * By default, the center of annotation view is placed over the coordinate of the annotation. centerOffset is the offset in screen points from the center of the annotion view.
     */
    centerOffset(): CGPoint;
    setCenterOffset$(value: CGPoint): void;
    /**
     * The offset (in points) that selection accessories reference. By default, the center point of an annotation view is referenced by accessories positioned adjacent to the annotation view on the map. You can use this property to reposition the reference point as necessary. MapKit measures the x- and y-offset values in points. Positive offset values move the reference point down and to the right, and negative values move it up and to the left.
     */
    accessoryOffset(): CGPoint;
    setAccessoryOffset$(value: CGPoint): void;
    /**
     * calloutOffset is the offset in screen points from the top-middle of the annotation view, where the anchor of the callout should be shown.
     */
    calloutOffset(): CGPoint;
    setCalloutOffset$(value: CGPoint): void;
    /**
     * leftCalloutOffset is the offset in screen points from the middle-left of the annotation view, where the anchor of the callout should be shown when oriented off the left side of the annotation view
     */
    leftCalloutOffset(): CGPoint;
    setLeftCalloutOffset$(value: CGPoint): void;
    /**
     * rightCalloutOffset is the offset in screen points from the middle-right of the annotation view, where the anchor of the callout should be shown when oriented off the right side of the annotation view
     */
    rightCalloutOffset(): CGPoint;
    setRightCalloutOffset$(value: CGPoint): void;
    /**
     * Defaults to YES. If NO, ignores touch events and subclasses may draw differently.
     */
    enabled(): boolean;
    setEnabled$(value: boolean): void;
    /**
     * Defaults to NO. This gets set/cleared automatically when touch enters/exits during tracking and cleared on up.
     */
    highlighted(): boolean;
    setHighlighted$(value: boolean): void;
    /** Defaults to NO. Becomes YES when tapped/clicked on in the map view. */
    selected(): boolean;
    setSelected$(value: boolean): void;
    /**
     * If YES, a standard callout bubble will be shown when the annotation is selected. The annotation must have a title for the callout to be shown.
     */
    canShowCallout(): boolean;
    setCanShowCallout$(value: boolean): void;
    leftCalloutAccessoryView(): _NSView | null;
    setLeftCalloutAccessoryView$(value: _NSView | null): void;
    rightCalloutAccessoryView(): _NSView | null;
    setRightCalloutAccessoryView$(value: _NSView | null): void;
    detailCalloutAccessoryView(): _NSView;
    setDetailCalloutAccessoryView$(value: _NSView): void;
    /**
     * If YES and the underlying id<MKAnnotation> responds to setCoordinate:, the user will be able to drag this annotation view around the map.
     */
    draggable(): boolean;
    setDraggable$(value: boolean): void;
    /**
     * Automatically set to MKAnnotationViewDragStateStarting, Canceling, and Ending when necessary. Implementer is responsible for transitioning to Dragging and None states as appropriate.
     */
    dragState(): MKAnnotationViewDragState;
    setDragState$(value: MKAnnotationViewDragState): void;
    /** Annotation views with equal non-nil identifiers can cluster together. */
    clusteringIdentifier(): _NSString;
    setClusteringIdentifier$(value: _NSString): void;
    /** If non-nil this is the annotation view this view is clustered into. */
    clusterAnnotationView(): _MKAnnotationView;
    /**
     * Default is MKFeatureDisplayPriorityRequired, other values opts into collision occlusion by priority.
     */
    displayPriority(): number;
    setDisplayPriority$(value: number): void;
    zPriority(): number;
    setZPriority$(value: number): void;
    selectedZPriority(): number;
    setSelectedZPriority$(value: number): void;
    /** Default collision mode is rectangle. */
    collisionMode(): MKAnnotationViewCollisionMode;
    setCollisionMode$(value: MKAnnotationViewCollisionMode): void;
}
