import type { Logger } from './types.js'; /** The three launch fields the channel argv is rebuilt from. */ export interface WebchatChannelBinding { key: string; gatewayUrl: string; serverPath: string; } export interface WebchatChannelEntry extends WebchatChannelBinding { boundAt: string; } export declare class WebchatChannelStore { private readonly bySessionId; private readonly filePath; private readonly logger; constructor(filePath: string, logger: Logger); /** Read the persisted file into the in-memory map. Boot-resilient: any * failure (missing file, malformed JSON, permission denied) is logged and * the store starts empty. Never throws. */ loadFromDisk(): void; get(sessionId: string): WebchatChannelEntry | undefined; /** Write-through `binding` for `sessionId`; refreshes boundAt each call. */ set(sessionId: string, binding: WebchatChannelBinding): WebchatChannelEntry; /** Remove the entry for `sessionId` if present. Returns true when removed. */ remove(sessionId: string): boolean; /** Current in-memory snapshot — diagnostic only. */ size(): number; private persistAtomic; } //# sourceMappingURL=webchat-channel-store.d.ts.map