interface CSSModuleClass { raw: string; moduleHint: string; localName: string; } interface ElementFingerprint { dataAnnotate: string | null; dataTestId: string | null; id: string | null; tagName: string; textContent: string | null; role: string | null; ariaLabel: string | null; stableClasses: string[]; domPath: string; siblingIndex: number; parentAnchor: string | null; rawClasses?: string[]; cssModules?: CSSModuleClass[]; sourceLocation: string | null; componentName: string | null; detectedSource: string | null; detectedComponent: string | null; } type AnnotationStatus = 'pending' | 'in_progress' | 'fixed_unverified' | 'verified' | 'dismissed'; type Actor = 'designer' | 'agent' | 'developer'; type AnnotationEventType = 'created' | 'acknowledged' | 'fix_claimed' | 'verified' | 'rejected' | 'dismissed' | 'reopened' | 'migrated'; interface AnnotationEvent { type: AnnotationEventType; actor: Actor | null; actorName?: string; timestamp: number; reason?: string; } interface Annotation { id: string; comment: string; fingerprint: ElementFingerprint; route: string; viewport: string; viewportBucket: number; timestamp: number; status: AnnotationStatus; lifecycle: AnnotationEvent[]; } interface AnnotationStore { version: 1; annotations: Annotation[]; } type ToolbarPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; interface WebRemarqOptions { theme?: 'light' | 'dark'; classFilter?: (className: string) => boolean; dataAttribute?: string; position?: ToolbarPosition; shortcuts?: boolean; storage?: StorageAdapter; } interface ImportResult { total: number; matched: number; otherBreakpoint: number; detached: number; } type SearchConfidence = 'high' | 'medium' | 'low'; interface GrepQuery { query: string; glob: string; confidence: SearchConfidence; } interface AgentSearchHints { grepQueries: GrepQuery[]; domContext: string; tagName: string; classes: string[]; } interface AgentAnnotationSource { file: string; line: number; column: number; component: string | null; } interface AgentLifecycleEvent { type: AnnotationEventType; actor: Actor | null; timestamp: number; reason?: string; } interface AgentAnnotation { id: string; route: string; comment: string; status: AnnotationStatus; timestamp: number; source: AgentAnnotationSource | null; searchHints: AgentSearchHints; lifecycle: AgentLifecycleEvent[]; } interface AgentExport { version: 1; format: 'agent'; viewportBucket: number; annotations: AgentAnnotation[]; } interface StorageChangeEvent { type: 'add' | 'update' | 'remove' | 'clear'; annotation?: Annotation; id?: string; } interface StorageAdapter { load(): Promise; save(annotation: Annotation): Promise; remove(id: string): Promise; clear(): Promise; subscribe?(callback: (event: StorageChangeEvent) => void): () => void; readonly isMemoryOnly?: boolean; } interface TransitionOpts { actor?: Actor; actorName?: string; reason?: string; } declare const WebRemarq: { init(opts?: WebRemarqOptions): void; destroy(): void; setTheme(theme: "light" | "dark"): void; export(format: "md" | "json" | "agent"): void; copy(format?: "md" | "agent"): void; import(file: File): Promise; getAnnotations(route?: string): Annotation[]; clearAll(): void; acknowledge(id: string, opts?: TransitionOpts): void; claimFix(id: string, opts?: TransitionOpts): void; verify(id: string, opts?: TransitionOpts): void; reject(id: string, opts?: TransitionOpts): void; dismiss(id: string, opts?: TransitionOpts): void; reopen(id: string, opts?: TransitionOpts): void; /** @deprecated Use verify() instead. */ markResolved(id: string): void; }; declare class LocalStorageAdapter implements StorageAdapter { isMemoryOnly: boolean; private extraFields; private memoryStore; load(): Promise; save(annotation: Annotation): Promise; remove(id: string): Promise; clear(): Promise; private ensureStore; private persist; } export { type Actor, type AgentAnnotation, type AgentExport, type AgentLifecycleEvent, type Annotation, type AnnotationEvent, type AnnotationEventType, type AnnotationStatus, type AnnotationStore, type CSSModuleClass, type ElementFingerprint, type ImportResult, LocalStorageAdapter, type StorageAdapter, type StorageChangeEvent, type ToolbarPosition, WebRemarq, type WebRemarqOptions };