/** * Noah — Internal Clock * * Tracks Noah's operational lifecycle state. Updated on every assessment * cycle and on significant events. Does NOT require a continuously running * timer — it computes temporal metrics from stored timestamps. * * MVP spec Section 5.1. */ import { LifecyclePhase, type PhaseContext, type PhaseTransitionRule } from '../types/lifecycle.js'; import type { TemporalState } from '../types/temporal-state.js'; import type { ClockUpdateEvent } from '../types/events.js'; export interface ClockConfig { agentId: string; commanderId?: string; phaseTransitions?: PhaseTransitionRule[]; financialCriticalThresholdDays?: number; } export interface PhaseTransitionLog { timestamp: Date; fromPhase: LifecyclePhase; toPhase: LifecyclePhase; triggerType: string; } export declare class NoahInternalClock { private state; private readonly phaseMachine; private readonly financialCriticalThresholdDays; private assessmentsSincePhaseEntry; readonly transitionLog: PhaseTransitionLog[]; constructor(config: ClockConfig, existingState?: TemporalState); /** * Update clock state. Called on every assessment cycle * and on significant events. */ update(event: ClockUpdateEvent, now?: Date): TemporalState; /** * Get a snapshot of the current state (immutable copy). */ getState(): TemporalState; /** * Get operational age in fractional days. */ getOperationalAgeDays(now?: Date): number; /** * Get current lifecycle phase with context. */ getPhaseContext(now?: Date): PhaseContext; private processEvent; private applyTransition; private computeHash; } //# sourceMappingURL=internal-clock.d.ts.map