import { PolicyRegistry } from './policy-registry.js';
import { DivergencePanel } from '../diagnostics/panels/divergence.js';
import type { PolicyPanelSnapshot } from '../diagnostics/panels/policy.js';
import type { DivergenceDashboard } from './divergence-dashboard.js';
import type { PermissionCheckResult } from '../../permissions/types.js';
import type { PolicySimulationSummary } from './simulation-scenarios.js';
import type { PolicyPreflightReview } from './preflight.js';
export interface PermissionAuditEntry {
    readonly callId: string;
    readonly tool: string;
    readonly category: string;
    readonly approved?: boolean | undefined;
    readonly sourceLayer?: string | undefined;
    readonly reasonCode?: string | undefined;
    readonly riskLevel: string;
    readonly classification: string;
    readonly summary: string;
    readonly reasons: readonly string[];
    readonly target?: string | undefined;
    readonly host?: string | undefined;
    readonly requestedAt: number;
    readonly decidedAt?: number | undefined;
    readonly persisted?: boolean | undefined;
}
export declare class PolicyRuntimeState {
    private readonly _registry;
    private _dashboard;
    private _divergencePanel;
    private readonly _recentPermissionAudit;
    private _lastSimulationSummary;
    private _lastPreflightReview;
    private readonly _subscribers;
    constructor(registry?: PolicyRegistry);
    getRegistry(): PolicyRegistry;
    getDashboard(): DivergenceDashboard | null;
    getDivergencePanel(): DivergencePanel | null;
    setDashboard(dashboard: DivergenceDashboard | null): void;
    recordTrendEntry(): void;
    getSnapshot(): PolicyPanelSnapshot;
    recordSimulationSummary(summary: PolicySimulationSummary): void;
    recordPreflightReview(review: PolicyPreflightReview): void;
    recordPermissionRequest(params: {
        callId: string;
        tool: string;
        category: string;
        analysis: PermissionCheckResult['analysis'];
    }): void;
    recordPermissionDecision(params: {
        callId: string;
        tool: string;
        category: string;
        result: PermissionCheckResult;
    }): void;
    subscribe(callback: () => void): () => void;
    notify(): void;
    private _upsertPermissionAudit;
}
//# sourceMappingURL=policy-runtime.d.ts.map