/**
 * Live-session metadata publisher as a supervised periodic service.
 *
 * This is the single daemon-owned writer behind `sessions watch`: consumers
 * announce reader presence, and the service publishes an incremental journal
 * snapshot immediately on the idle->active edge and every 15 seconds while a
 * reader remains. Callers consume the row; they do not run their own gather.
 */
import type { DaemonServiceId } from '../daemon-services.js';
import { BasePeriodicService, type DaemonContext } from './service.js';
export declare class SessionStateService extends BasePeriodicService {
    private readonly wake;
    readonly id: DaemonServiceId;
    readonly intervalMs = 15000;
    readonly deadlineMs = 30000;
    private stopReaderWatch;
    constructor(wake: () => void);
    protected onStart(_ctx: DaemonContext): Promise<void>;
    protected onStop(): Promise<void>;
    protected onTick(_ctx: DaemonContext): Promise<void>;
}
