import type { RrwebChunkPayload } from '@harnessa-fe/protocol'; export { RRWEB_FULL_SNAPSHOT_TYPE, chunkHasFullSnapshot } from './rrweb-types.js'; export declare class RrwebRecorder { private readonly onChunk; private stopRecording?; private flushTimer?; private chunkSeq; private buffer; constructor(onChunk: (chunk: RrwebChunkPayload) => void); start(): void; stop(): void; /** * Force rrweb to emit a fresh Meta + FullSnapshot pair right now. * * Used by the client on every ws hello-ack so each new connection has its * own baseline. Without this, the only FullSnapshot for the session is * the one rrweb emits at `start()`; if that chunk gets evicted from the * outbox (FIFO overflow) or lost because the daemon was down at the * critical moment, the session is unreplayable for the rest of its life. * * Safe to call repeatedly — rrweb just emits another type:2 each time. * No-op if the recorder hasn't been started. */ takeFullSnapshot(): void; private push; private flush; }