/**
 * In-memory focus store keyed by workId.
 *
 * Public surface:
 *   read(workId)             → FocusSnapshot                  (current state)
 *   write(workId, patch)     → FocusSnapshot                  (returns merged)
 *   subscribe(workId, cb)    → () => void (unsubscribe)
 *   reset(workId)            → void                            (test helper)
 *
 * The store is process-local and not persisted. Studio re-establishes
 * focus state via the frontend store when the user reopens a work; the
 * backend's role is to broadcast changes to all bridge subscribers
 * (chat panel + terminal panel + any future agent surface).
 */
import { type FocusSnapshot } from "./types.js";
type Subscriber = (snapshot: FocusSnapshot) => void;
export declare function read(workId: string): FocusSnapshot;
export declare function write(workId: string, patch: Partial<FocusSnapshot>): FocusSnapshot;
export declare function subscribe(workId: string, cb: Subscriber): () => void;
/** Test helper — clears state for a workId. */
export declare function reset(workId?: string): void;
export type { FocusSnapshot, FocusEvent } from "./types.js";
export { EMPTY_FOCUS } from "./types.js";
//# sourceMappingURL=index.d.ts.map