import { RunState, SentinelConfig } from './types';
export interface PolicyViolation {
    policy: string;
    reason: string;
    threshold: number;
    actual: number;
    runId: string;
    timestamp: number;
}
export interface Policy {
    name: string;
    evaluate(runId: string, runState: RunState, config: SentinelConfig): PolicyViolation | null;
}
export declare class TimeoutPolicy implements Policy {
    name: string;
    evaluate(runId: string, runState: RunState, config: SentinelConfig): PolicyViolation | null;
}
export declare class IdlePolicy implements Policy {
    name: string;
    evaluate(runId: string, runState: RunState, config: SentinelConfig): PolicyViolation | null;
}
export declare class TokenCapPolicy implements Policy {
    name: string;
    evaluate(runId: string, runState: RunState, config: SentinelConfig): PolicyViolation | null;
}
export declare class LoopDetectionPolicy implements Policy {
    name: string;
    evaluate(runId: string, runState: RunState, config: SentinelConfig): PolicyViolation | null;
}
export declare class CostPolicy implements Policy {
    name: string;
    evaluate(runId: string, runState: RunState, config: SentinelConfig): PolicyViolation | null;
}
export declare class PolicyManager {
    private policies;
    evaluatePolicies(runId: string, runState: RunState, config: SentinelConfig): PolicyViolation[];
    getPolicy(name: string): Policy | undefined;
    getPolicyNames(): string[];
}
export declare const policyManager: PolicyManager;
//# sourceMappingURL=policies.d.ts.map