export interface Point { x: number; y: number; } export interface Rect extends Point { width: number; height: number; } export type Tool = 'rectangle' | 'ellipse' | 'arrow' | 'pen' | 'mosaic' | 'text'; export interface Annotation { tool: Tool; points: Point[]; color: string; size: number; text: string; } export interface History { done: Annotation[]; undone: Annotation[]; } export type HistoryAction = { type: 'add'; mark: Annotation; } | { type: 'undo' | 'redo' | 'reset'; }; export declare const clamp: (value: number, min: number, max: number) => number; export declare function rectBetween(a: Point, b: Point): Rect; export declare function imagePoint(x: number, y: number, bounds: { left: number; top: number; width: number; height: number; }, width: number, height: number): Point; export declare function moveSelection(r: Rect, dx: number, dy: number, width: number, height: number): Rect; export declare function resizeSelection(r: Rect, handle: string, p: Point, width: number, height: number): Rect; export declare function historyStep(state: History, action: HistoryAction): History; /** Ordered front to back by the host; half-open edges avoid two hits at a shared border. */ export declare function windowAtPoint(windows: readonly Rect[], p: Point): Rect | undefined; //# sourceMappingURL=screenshot-editor-model.d.ts.map