import type { Violation } from '../../../domain/violation'; import { type EnforcerAnalysisContext, type EnforcerRuntime, type IEnforcerAdapter, type IProcessRunner, type ProcessResult, type ProcessSpec } from './enforcer.types'; export declare const DEFAULT_ENFORCER_TIMEOUT_MS = 120000; export declare const ENFORCER_TIMEOUT_GRACE_MS = 5000; export declare class EnforcerTimeoutError extends Error { readonly tool: string; readonly timeoutMs: number; readonly timedOut = true; constructor(tool: string, timeoutMs: number); } export declare function resolveEnforcerTimeoutMs(ctx: EnforcerAnalysisContext, adapterDefault?: number): number; export interface ShellEnforcerConfig { readonly tool: string; readonly runtime: EnforcerRuntime; buildSpec(ctx: EnforcerAnalysisContext): ProcessSpec; parse(result: ProcessResult, ctx: EnforcerAnalysisContext): Violation[]; isToolFailure?(result: ProcessResult, ctx: EnforcerAnalysisContext): boolean; certificationGap?(ctx: EnforcerAnalysisContext): string | undefined; readonly timeoutMs?: number; } export declare class ShellEnforcerAdapter implements IEnforcerAdapter { private readonly config; private readonly runner; constructor(config: ShellEnforcerConfig, runner: IProcessRunner); get tool(): string; get runtime(): EnforcerRuntime; analyze(ctx: EnforcerAnalysisContext): Promise; private runWithWallClock; }