/** * URLStateManager * * Manages URL parameters for viewer state synchronization * Handles parsing and syncing of: * - xywh: viewport bounds (x,y,w,h) * - r or rotation: rotation angle * - cv or canvasIndex: canvas index * - target: full target string (canvas#xywh=x,y,w,h) * - iiif-content: IIIF content-state token */ import { XYWHFragment } from './XYWHFragment'; export interface URLStateParams { manifestId?: string; canvasId?: string; canvasIndex?: number; xywh?: string; rotation?: number; target?: string; iiifContent?: string; } export interface ContentStateTarget { canvasId: string; xywh?: string; } /** * Parse URL hash parameters */ export declare function parseURLHash(hash?: string): URLStateParams; /** * Parse target string (canvas#xywh=x,y,w,h) */ export declare function parseTarget(target: string): ContentStateTarget | null; /** * Parse IIIF content-state token * Decodes base64url and extracts canvas + selector */ export declare function parseContentState(token: string): ContentStateTarget | null; /** * Serialize viewport state to URL parameters */ export declare function serializeURLState(params: URLStateParams): string; /** * Create target string from canvas ID and xywh */ export declare function createTarget(canvasId: string, xywh: XYWHFragment | string): string;