export type PageAnnotationColor = "red" | "purple" | "amber"; export type PageAnnotationPlacement = "element" | "pageTop"; export type PageAnnotationMarker = { id: string; number: number; color: PageAnnotationColor; selector: string; placement: PageAnnotationPlacement; }; export type PageAnnotationViewportRect = { x: number; y: number; width: number; height: number; }; export type PageAnnotationsSetMessage = { type: "replo:annotations:set"; protocolVersion: 1; setId: string; markers: PageAnnotationMarker[]; }; export type PageAnnotationsClearMessage = { type: "replo:annotations:clear"; }; export type PageAnnotationsRequestReadyMessage = { type: "replo:annotations:requestReady"; }; export type PageAnnotationsParentMessage = PageAnnotationsSetMessage | PageAnnotationsClearMessage | PageAnnotationsRequestReadyMessage; export type PageAnnotationsReadyMessage = { type: "replo:annotations:ready"; protocolVersion: 1; }; export type PageAnnotationsClickedMessage = { type: "replo:annotations:clicked"; id: string; viewportRect: PageAnnotationViewportRect; }; export type PageAnnotationsActiveRectMessage = { type: "replo:annotations:activeRect"; id: string; viewportRect: PageAnnotationViewportRect; }; export type PageAnnotationsUnresolvedMessage = { type: "replo:annotations:unresolved"; setId: string; ids: string[]; }; export type PageAnnotationsIframeMessage = PageAnnotationsReadyMessage | PageAnnotationsClickedMessage | PageAnnotationsActiveRectMessage | PageAnnotationsUnresolvedMessage;