import { PolicyRegistry } from '@pellux/goodvibes-sdk/platform/runtime/permissions/policy-registry';
import { DivergencePanel } from '@pellux/goodvibes-sdk/platform/runtime/diagnostics/panels/divergence';
import type { PolicyPanelSnapshot } from '../diagnostics/panels/policy.js';
import type { DivergenceDashboard } from '@pellux/goodvibes-sdk/platform/runtime/permissions/divergence-dashboard';
import type { PermissionCheckResult } from '@pellux/goodvibes-sdk/platform/permissions/types';
import type { PolicySimulationSummary } from '@pellux/goodvibes-sdk/platform/runtime/permissions/simulation-scenarios';
import type { PolicyPreflightReview } from './preflight.js';
export interface PermissionAuditEntry {
    readonly callId: string;
    readonly tool: string;
    readonly category: string;
    readonly approved?: boolean;
    readonly sourceLayer?: string;
    readonly reasonCode?: string;
    readonly riskLevel: string;
    readonly classification: string;
    readonly summary: string;
    readonly reasons: readonly string[];
    readonly target?: string;
    readonly host?: string;
    readonly requestedAt: number;
    readonly decidedAt?: number;
    readonly persisted?: boolean;
}
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