import type { ChartCursorBinding, ChartCursorController, ChartCursorExtensionToken, ChartCursorPresentation, ChartCursorState, ChartFocusSource, ChartFocusState, ChartFocusStrategy, ChartPoint, ChartScene, ChartValue } from './types.js'; export interface ChartCursorHostSession { readonly controller: ChartCursorController; getState: () => ChartCursorState | null; subscribe: (listener: () => void) => () => void; owns: (state: ChartCursorState | null) => boolean; publish: (state: ChartCursorState) => void; clearOwnedTransient: () => boolean; clear: () => void; destroy: () => void; resolvePresentation: (scene: ChartScene, binding: ChartCursorBinding, state: ChartCursorState | null) => ChartCursorPresentation | null; resolveFocus: (points: readonly ChartPoint[], binding: Extract, { mode: 'focus'; }>, state: ChartCursorState | null, strategy?: ChartFocusStrategy) => readonly ChartPoint[]; createFocusState: (scene: ChartScene, binding: Extract, { mode: 'focus'; }>, focus: ChartFocusState) => ChartCursorState; createFreeState: (scene: ChartScene, binding: Extract, { mode: 'free'; }>, position: Readonly<{ x: number; y: number; }>, source?: ChartFocusSource, pinned?: boolean) => ChartCursorState; } export interface ChartCursorHostExtension extends ChartCursorExtensionToken { create: (controller: ChartCursorController) => ChartCursorHostSession; } export declare function createChartCursorHostSession(binding: ChartCursorBinding): ChartCursorHostSession;