import { type Vec2 } from '../../math'; import type { DecorationItem } from './decorations'; import { type FacetAxis, type FacetLayoutContext } from './facets'; import type { Rect, Sides } from './layout'; import type { ResolvedMarginals } from './marginals'; import type { PlotTitleProp } from './plot-title'; import type { IndexedRefLine } from './reference-line'; import type { FontSpec } from './text-metrics'; import type { AxisConfig, AxisRanges, LegendConfig, PanConfig } from './types'; type FrameAxes = Record; type PerAxis = Partial>; interface CartesianFrameOptions { axes: () => FrameAxes; auto_ranges: () => AxisRanges; has_x2: () => boolean; has_y2: () => boolean; padding: () => Sides; title: () => PlotTitleProp | null | undefined; obstacles: () => readonly { x: number; y: number; }[]; legend: () => LegendConfig | null | undefined; legend_visible: () => boolean; legend_items: () => readonly { label: string; legend_group?: string; }[]; decorations?: () => readonly DecorationItem[]; exclusion_rects?: () => readonly Rect[]; legend_footprint_fallback?: { width: number; height: number; }; marginals: () => ResolvedMarginals; ref_lines: () => readonly IndexedRefLine[]; pan: () => PanConfig | undefined; facet_layout: () => FacetLayoutContext | undefined; write_range: (axis: FacetAxis, range: Vec2 | [null, null]) => void; facet_ranges?: () => AxisRanges; range_sources?: () => Record>; range_sync?: `per-axis` | `expand`; has_data?: () => PerAxis; tick_counts?: PerAxis; on_drag_move?: (coords: { x: number; y: number; }, inside_svg: boolean) => void; on_rect_select?: (start: { x: number; y: number; }, current: { x: number; y: number; }) => void; tick_override?: (axis: FacetAxis) => number[] | undefined; measured_axes?: () => PerAxis; clip_id_prefix?: string; } export type CartesianFrame = ReturnType; export declare function create_cartesian_frame(opts: CartesianFrameOptions): { width: number; height: number; svg_element: SVGElement | null; tick_font: Readonly | undefined; legend_element: HTMLDivElement | undefined; legend_filter_query: string; hovered_series_idx: number | null; hovered_ref_line_idx: number | null; readonly ref_lines: readonly IndexedRefLine[]; readonly ref_line_axes: { ranges: { x: Vec2; x2: Vec2; y: Vec2; y2: Vec2; }; scales: { x: import("./scales").ArcsinhScale | import("d3-scale").ScaleContinuousNumeric; x2: import("./scales").ArcsinhScale | import("d3-scale").ScaleContinuousNumeric; y: import("./scales").ArcsinhScale | import("d3-scale").ScaleContinuousNumeric; y2: import("./scales").ArcsinhScale | import("d3-scale").ScaleContinuousNumeric; }; }; clip_path_id: string; facet: { padding: (intrinsic: Required) => Required; axis_visible: (axis: "x2" | "x" | "y2" | "y") => boolean; apply_ranges: () => void; update_range: (axis: "x2" | "x" | "y2" | "y", range: Vec2) => boolean; reset_ranges: () => boolean; }; pan_zoom: { readonly drag_start: import("../../math").Point2D | null; readonly drag_current: import("../../math").Point2D | null; readonly drag_mode: import("./pan-zoom.svelte").RectDragMode; readonly suppress_click: boolean; readonly is_panning: boolean; readonly cursor: string; set_focused: (focused: boolean) => void; on_mouse_down: (evt: MouseEvent) => void; on_wheel: (evt: WheelEvent) => void; on_touch_start: (evt: TouchEvent) => void; on_touch_move: (evt: TouchEvent) => void; on_touch_end: () => void; on_key_down: (evt: KeyboardEvent) => void; on_window_key_down: (evt: KeyboardEvent) => void; on_window_key_up: (evt: KeyboardEvent) => void; on_window_blur: () => void; reset_view: () => void; destroy: () => void; }; legend_tween: { coords: import("svelte/motion").Tween<{ x: number; y: number; }>; placed: () => boolean; set_locked: (locked: boolean) => void; }; legend_drag_start: (event: MouseEvent) => void; legend_drag: (event: MouseEvent) => void; legend_drag_end: () => void; readonly legend_is_dragging: boolean; readonly legend_manual_position: { x: number; y: number; } | null; readonly axes: FrameAxes; readonly ranges: { initial: AxisRanges; current: AxisRanges; }; readonly effective_base_pad: Required; readonly pad: Required; readonly chart_width: number; readonly chart_height: number; readonly scales: { x: import("./scales").ArcsinhScale | import("d3-scale").ScaleContinuousNumeric; x2: import("./scales").ArcsinhScale | import("d3-scale").ScaleContinuousNumeric; y: import("./scales").ArcsinhScale | import("d3-scale").ScaleContinuousNumeric; y2: import("./scales").ArcsinhScale | import("d3-scale").ScaleContinuousNumeric; }; readonly ticks: Record<"x2" | "x" | "y2" | "y", number[]>; readonly tick_label_widths: { y_max: number; y2_max: number; }; readonly title_config: import("./plot-title").PlotTitleConfig | null; readonly decoration_solution: import("./decorations").DecorationSolution; readonly legend_placement: import("./decorations").DecorationPlacement | undefined; readonly legend_footprint: { width: number; height: number; }; readonly exclusion_rects: Rect[]; readonly has_x2: boolean; readonly has_y2: boolean; readonly legend_visible: boolean; }; export {};