import type { Script, Stylesheet } from "./page.js"; export declare const MessageType: { readonly Removed: "removed"; readonly Expired: "expired"; readonly Updated: "updated"; readonly ScriptsAdded: "scripts_added"; readonly StylesheetsAdded: "stylesheets_added"; }; export type MessageType = (typeof MessageType)[keyof typeof MessageType]; export declare const MessageReason: { readonly Removed: "This page has been removed"; readonly Expired: "This page has expired"; }; export type MessageReason = (typeof MessageReason)[keyof typeof MessageReason]; interface BaseMessage { type: MessageType; } export interface RemovedMessage extends BaseMessage { type: typeof MessageType.Removed; message: string; } export interface ExpiredMessage extends BaseMessage { type: typeof MessageType.Expired; message: string; } export interface UpdatedMessage extends BaseMessage { type: typeof MessageType.Updated; body: string; inlineScripts: { content: string; }[]; } export interface ScriptsAddedMessage extends BaseMessage { type: typeof MessageType.ScriptsAdded; externalScripts: { src: string; }[]; inlineScripts: { content: string; }[]; } export interface StylesheetsAddedMessage extends BaseMessage { type: typeof MessageType.StylesheetsAdded; stylesheets: Stylesheet[]; } export type PageMessage = RemovedMessage | ExpiredMessage | UpdatedMessage | ScriptsAddedMessage | StylesheetsAddedMessage; export declare const MessageFactory: { removed(reason?: "This page has been removed"): RemovedMessage; expired(reason?: "This page has expired"): ExpiredMessage; updated(body: string, scripts: Script[]): UpdatedMessage; scriptsAdded(scripts: Script[]): ScriptsAddedMessage; stylesheetsAdded(stylesheets: Stylesheet[]): StylesheetsAddedMessage; }; export declare function serializeMessage(msg: PageMessage): string; export {}; //# sourceMappingURL=message.d.ts.map