import type { ResidentAgendaState } from './agenda.js'; import { type ResidentHistoryReadBudget } from './history-disk.js'; /** @experimental An immutable upper boundary; new work requires a new source. */ export interface ResidentActivityScope { readonly tenantId: string; readonly agentKey: string; readonly throughRevision: number; } /** @experimental Admission is authority to inspect an attempt, not proof that it executed. */ export interface ResidentAdmission { readonly revision: number; readonly pursuitRevision: number; readonly pursuitId: string; readonly claimId: string; readonly step: number; readonly objective: string; } /** @experimental Settlement is an agenda decision, not proof of verification or delivery. */ export interface ResidentSettlement { readonly revision: number; readonly pursuitId: string; readonly claimId: string; readonly outcome: 'wait' | 'complete' | 'blocked'; } /** @experimental Forward pages; cursor is the next revision to inspect, initially 1. */ export interface ResidentActivityOptions { readonly cursor?: number; readonly maxRevisions?: number; readonly maxReadBytes?: number; } /** @experimental Gaps stay explicit; counts cover only the scanned revision range. */ export interface ResidentActivityPage { readonly scope: ResidentActivityScope; readonly fromRevision: number; readonly throughRevision: number; readonly nextCursor: number | null; readonly scannedBytes: number; readonly unavailableRevisions: readonly number[]; readonly admissions: readonly ResidentAdmission[]; readonly settlements: readonly ResidentSettlement[]; readonly archivedPursuits: readonly string[]; } /** @experimental A backend must enforce scope, cancellation and read bounds. */ export interface ResidentActivitySource { readonly scope: ResidentActivityScope; read(options?: ResidentActivityOptions, signal?: AbortSignal): Promise; } /** Internal adapter for the immutable disk agenda. */ export declare function createResidentActivitySource(scopeInput: ResidentActivityScope, load: (revision: number, budget: ResidentHistoryReadBudget) => Promise): ResidentActivitySource; //# sourceMappingURL=activity.d.ts.map