import type { TaskId } from "../domain/task"; export declare const TASK_SESSION_ENTRY_TYPE = "todu-current-task"; export interface TaskSessionState { currentTaskId: TaskId | null; } export interface TaskSessionEntryData { currentTaskId: TaskId | null; } export interface TaskSessionStateListener { (state: TaskSessionState): void; } export interface TaskSessionEntryLike { type: string; customType?: string; data?: unknown; } export interface TaskSessionStore { getState(): TaskSessionState; replaceState(state: TaskSessionState): void; setCurrentTask(taskId: TaskId | null): void; clearCurrentTask(): void; subscribe(listener: TaskSessionStateListener): { unsubscribe(): void; }; } declare const createTaskSessionState: (overrides?: Partial) => TaskSessionState; declare const restoreTaskSessionState: (entries: readonly TaskSessionEntryLike[]) => TaskSessionState; declare const persistTaskSessionState: (appendEntry: (customType: string, data?: TaskSessionEntryData) => void, state: TaskSessionState) => void; declare const createInMemoryTaskSessionStore: (initialState?: Partial) => TaskSessionStore; export { createInMemoryTaskSessionStore, createTaskSessionState, persistTaskSessionState, restoreTaskSessionState, };