import { EventStream, RunEvent, RunState, SentinelConfig } from './types';
import { PolicyViolation } from './policies';
export declare class Sentinel {
    private static instance;
    private eventBuffer;
    private subscriptions;
    private evaluationIntervals;
    private config;
    private constructor();
    static getInstance(): Sentinel;
    static resetInstance(): void;
    watchRun(runId: string, events$: EventStream): void;
    private handleEvent;
    private setupEvaluationInterval;
    private cleanupRun;
    syncExternalKill(runId: string, reason: string): void;
    kill(runId: string, reason: string): Promise<void>;
    getActiveRuns(): RunState[];
    getRunStatus(runId: string): RunState | undefined;
    getRecentEvents(runId: string, count?: number): RunEvent[];
    getTokenEventsInWindow(runId: string, windowMs: number): RunEvent[];
    getPolicyViolations(runId: string): PolicyViolation[];
    private evaluatePolicies;
    unwatchRun(runId: string): void;
    getWatchedRunIds(): string[];
    isEnabled(): boolean;
    getConfig(): SentinelConfig;
    updateConfig(newConfig: SentinelConfig): void;
    shutdown(): void;
}
export declare const sentinel: Sentinel;
//# sourceMappingURL=sentinel.d.ts.map