import type { MouseTrackingMode, SelectionMode, TerminalPoint, TerminalSelection } from "./types.js"; import type { CellPosition } from "./wire-types.js"; export interface GestureState { tracking: MouseTrackingMode; historical?: boolean; readOnly?: boolean; selection?: Pick; } export type GestureStart = { owner: "app"; } | { owner: "local"; mode: SelectionMode; extend: boolean; }; type PointEvent = Pick; export declare function cellPoint(event: PointEvent, bounds: Pick, columns: number, rows: number, clamp?: boolean): CellPosition | null; export declare class WheelAccumulator { x: number; y: number; reset(): void; take(event: Pick, bounds: Pick, rows: number): TerminalPoint; } /** Ownership and granularity are latched, independent of subsequent modifiers. */ export declare class SelectionGesture { owner: "local" | "app" | null; mode: SelectionMode; endpoint: TerminalPoint | null; begin(event: Pick, point: TerminalPoint, { tracking, historical, readOnly, selection }: GestureState): GestureStart | null; move(point: TerminalPoint): TerminalPoint | null; scrollPoint(point: TerminalPoint): TerminalPoint | undefined; wheelOwner(event: Pick, { tracking, historical, readOnly }: GestureState): "local" | "app"; end(): void; } export {}; //# sourceMappingURL=selection-input.d.ts.map