import type { IncomingMessage, ServerResponse } from 'node:http'; import type { AuthContext } from '../auth/AuthContext'; export interface DeviceNotificationIdentity { webId: string; localPart: string; } export interface DeviceNotificationTicketRecord { digest: string; identity: DeviceNotificationIdentity; deviceSessionId: string; origin: string; expiresAt: number; } export declare class DeviceNotificationTicketStore { private readonly records; mint(input: { identity: DeviceNotificationIdentity; deviceSessionId: string; origin: string; ttlMs: number; }): string; consume(ticket: string): DeviceNotificationTicketRecord | undefined; size(): number; clear(): void; private digest; } export interface DeviceNotificationTicketHandlerOptions { webSocketEndpoint: string; origin: string; ticketTtlMs?: number; ticketStore?: DeviceNotificationTicketStore; } type TicketRequest = IncomingMessage & { auth?: AuthContext | { webId?: string; localPart?: string; }; }; export declare class DeviceNotificationTicketHandler { readonly ticketStore: DeviceNotificationTicketStore; private readonly webSocketEndpoint; private readonly origin; private readonly ticketTtlMs; constructor(options: DeviceNotificationTicketHandlerOptions); handle(request: TicketRequest, response: ServerResponse): Promise; private extractIdentity; private readJson; private sendJson; } export {};