import type { AnnotationLabels, AnnotationStore, AnnotationTheme, PatchMarkErrorContext } from './types.js'; import type { PatchMark as PatchMarkElement } from './PatchMark.js'; export interface PatchMarkProps { /** Where annotations are persisted/sent. Defaults to a fresh localStorage store. */ store?: AnnotationStore; /** UI text overrides, merged over the package defaults on every update. */ labels?: Partial; /** Fine-grained accent overrides, reset when omitted. */ theme?: AnnotationTheme; /** Preset theme name, reset to blue when omitted. */ themeName?: string; /** Stable annotation page key; defaults to pathname + query + hash. */ pageKey?: string | null; /** Whether the launcher is shown. Defaults to true in the React wrapper. */ visible?: boolean; /** Called when a store operation fails. */ onError?: (error: Error, context: PatchMarkErrorContext) => void; /** * Require a store with validateAccess() and a server-side authorization * check. This is not a substitute for backend authorization. */ requireAuth?: boolean; /** Dock position: right-center, right-top, right-bottom, left-center, left-top, or left-bottom. */ position?: string; } /** * Declarative React wrapper around . * * The forwarded ref is populated only after the custom element has loaded and * upgraded, so imperative calls such as ref.current?.open() never race the * client-side dynamic import. Every prop assignment is complete: removing a * prop restores the documented default instead of retaining stale UI state. */ export declare const PatchMark: import("react").ForwardRefExoticComponent>; declare module 'react' { namespace JSX { interface IntrinsicElements { 'patch-mark': import('react').DetailedHTMLProps, HTMLElement> & { /** Show the launcher (off by default on the raw element). */ visible?: boolean | ''; /** Preset theme name, or a custom preset defined via host CSS. */ theme?: string; /** One-off accent color override. */ accent?: string; }; } } }