import type { ClickEvent } from "@arcgis/core/views/input/types.js";

export type PopupPositionResult = "bottom-center" | "bottom-end" | "bottom-left" | "bottom-right" | "bottom-start" | "top-center" | "top-end" | "top-left" | "top-right" | "top-start";

export type PopupPositionValue = PopupPositionResult | PopupPositionVariable;

export type Alignment = PopupPositionValue | (() => PopupPositionValue);

export type PopupDockPosition = PopupPositionValue | (() => PopupPositionValue);

export interface DockOptions {
  buttonEnabled?: boolean;
  position?: PopupDockPosition;
  breakpoint?: DockOptionsBreakpoint | boolean;
}

export interface FetchFeaturesOptions {
  event?: ClickEvent;
  signal?: AbortSignal;
}

export type PopupPositionVariable = "auto" | "bottom-end" | "bottom-start" | "top-end" | "top-start";

export interface DockOptionsBreakpoint {
  width?: number;
  height?: number;
}