import { SignalBus, type NervousSignal } from './signals';
import { type NervousRunState } from './reflexes';
import { type AttentionBiases } from './attention';
import { type MotorPermission } from './motor';
import { type PainSignal } from './pain';
import { type RecoveryPlan } from './recovery';
export interface NervousSystemResult {
    runState: NervousRunState;
    signals: NervousSignal[];
    attentionBiases: AttentionBiases;
    reflexesTriggered: string[];
    recoveryPlan?: RecoveryPlan;
}
export declare class NervousSystemController {
    private bus;
    private runState;
    private allSignals;
    constructor();
    /** Phase 1: Inspect user query and create run state. */
    inspectQuery(query: string, taskType: string): NervousSystemResult;
    /** Phase 2: Check motor permission before a tool call. */
    checkToolPermission(toolName: string, toolInput?: Record<string, unknown>): MotorPermission;
    /** Phase 3: Inspect a tool result during execution. */
    onToolResult(toolName: string, success: boolean, output: string): NervousSignal[];
    /** Phase 4: Inspect loop behavior during execution. */
    onToolCallSequence(toolCallSequence: string[]): NervousSignal[];
    /** Phase 5: Inspect context pressure. */
    onContextPressure(tokenCount: number, maxTokens: number): NervousSignal[];
    /** Phase 6: Inspect verifier result after execution. */
    onVerifierResult(status: string, score: number, notes?: string[]): {
        signals: NervousSignal[];
        painSignals: PainSignal[];
        painMultiplier: number;
    };
    /** Get recovery plan if in recovery mode. */
    getRecoveryPlan(): RecoveryPlan | undefined;
    /** Format recovery plan as text. */
    getRecoveryText(): string;
    /** Get current run state. */
    getRunState(): NervousRunState | null;
    /** Get all signals from current run. */
    getSignals(): NervousSignal[];
    /** Get signal bus for external subscribers. */
    getBus(): SignalBus;
    /** Get a summary for route explanations. */
    getSummary(): Record<string, unknown>;
    /** Persist signals to disk for historical analysis. Returns false on failure. */
    persistSignals(projectDir: string): Promise<boolean>;
    /** Read recent persisted signals. */
    static readPersistedSignals(projectDir: string, limit?: number): Promise<Array<Record<string, unknown>>>;
    /** Reset for next run. */
    reset(): void;
}
//# sourceMappingURL=controller.d.ts.map