import type { ObservationRepository } from "../db/observations"; import type { PendingMessageRepository } from "../db/pending"; import type { SessionRepository } from "../db/sessions"; import type { QueueProcessor } from "../queue/processor"; import type { OpenCodeEvent, OpenMemConfig } from "../types"; export interface SessionLifecycleDeps { queue: QueueProcessor; sessions: SessionRepository; projectPath: string; config: OpenMemConfig; observations: ObservationRepository; pendingMessages: PendingMessageRepository; } export type SessionLifecycleEventType = "session.created" | "session.idle" | "session.completed" | "session.ended"; export declare function handleSessionLifecycleEvent(deps: SessionLifecycleDeps, eventType: SessionLifecycleEventType, sessionId?: string): Promise; /** * Factory for the `event` hook. * * Handles session lifecycle events: * - `session.created` — ensure session record exists * - `session.idle` — trigger batch processing * - `session.completed` / `session.ended` — process remaining queue, * summarize, and mark session complete * * The handler NEVER throws. */ export declare function createEventHandler(queue: QueueProcessor, sessions: SessionRepository, projectPath: string, config: OpenMemConfig, observations: ObservationRepository, pendingMessages: PendingMessageRepository): (input: { event: OpenCodeEvent; }) => Promise; //# sourceMappingURL=session-events.d.ts.map