import type { ArchitectsDb, SentinelReport } from '../types.js';
type NestedDispatchGuardOk = {
    ok: true;
};
type NestedDispatchGuardFail = {
    ok: false;
    error: {
        code: 'nested-dispatch-refused';
        message: string;
        retriable: false;
        hint: string;
    };
};
export declare class ArchitectsSentinel {
    private db;
    private strikeTeamId;
    private repoRoot;
    private operativeActivity;
    private timer?;
    /**
     * Static guard: refuse `nexus_session_bootstrap` when this process was
     * spawned by a parent push-dispatch run (`NEXUS_PARENT_DISPATCH` is set).
     * Prevents infinite agent-loop nesting.
     */
    static guardNestedDispatch(toolName: string): NestedDispatchGuardOk | NestedDispatchGuardFail;
    constructor(db: ArchitectsDb, strikeTeamId: string, repoRoot: string, operativeActivity: Map<string, {
        strikeTeamId: string | null;
        lastSortieAt: string | null;
    }>);
    start(): void;
    stop(): void;
    patrol(): Promise<SentinelReport>;
}
export {};
