export declare const XPOD_NOTIFICATIONS_PROTOCOL = "xpod.notifications.v1"; export type DeviceNotificationOperation = 'create' | 'update' | 'delete' | 'invalidate'; export type DeviceNotificationClientFrame = { type: 'hello'; protocol: typeof XPOD_NOTIFICATIONS_PROTOCOL; resumeFrom?: number; } | { type: 'register'; requestId: string; topics: string[]; } | { type: 'unregister'; requestId: string; topics: string[]; } | { type: 'ack'; sequence: number; }; export type DeviceNotificationServerFrame = { type: 'ready'; connectionId: string; sequence: number; } | { type: 'registered' | 'unregistered'; requestId: string; topics: string[]; } | { type: 'event'; sequence: number; eventId: string; topic: string; object?: string; operation: DeviceNotificationOperation; emittedAt: string; } | { type: 'resync-required'; topics: string[]; reason: 'gap' | 'overflow' | 'expired'; } | { type: 'error'; requestId?: string; code: string; message: string; }; export interface ParseClientFrameOptions { origin?: string; seenRequestIds?: Set; maxTopicsPerBatch?: number; } export declare function parseClientFrame(input: unknown, options?: ParseClientFrameOptions): DeviceNotificationClientFrame; export declare function serializeServerFrame(frame: DeviceNotificationServerFrame): string; export declare function createProtocolErrorFrame(code: string, message: string, requestId?: string): DeviceNotificationServerFrame; export declare function parseDeviceNotificationSubprotocols(header: string | string[] | undefined): { protocolAccepted: boolean; ticket?: string; };