import { buildMcpAttackPathReview } from './mcp/index.js';
import type { McpDecisionRecord, McpSecuritySnapshot } from '@pellux/goodvibes-sdk/platform/runtime/mcp/types';
import type { RuntimeServices } from './services.js';
import type { UiReadModel } from '@pellux/goodvibes-sdk/platform/runtime/ui-read-models-base';
import type { SecurityPanelSnapshot } from '@pellux/goodvibes-sdk/platform/runtime/diagnostics/panels/security';
import type { PluginStatus } from '../plugins/manager.js';
export interface UiMcpServerSnapshot {
    readonly name: string;
    readonly role: string;
    readonly trustMode: string;
    readonly status: string;
    readonly schemaFreshness: string;
    readonly toolCount: number;
    readonly lastError?: string;
    readonly quarantineReason?: string;
    readonly quarantineDetail?: string;
}
export interface UiSecuritySnapshot {
    readonly audit: SecurityPanelSnapshot;
    readonly policy: {
        readonly preflightStatus: string;
        readonly preflightIssueCount: number;
        readonly lintFindingCount: number;
    };
    readonly deniedPermissions: number;
    readonly incidents: ReturnType<import('./forensics/index.js').ForensicsRegistry['getAll']>;
    readonly latestIncident: ReturnType<import('./forensics/index.js').ForensicsRegistry['latest']>;
    readonly mcpServers: readonly McpSecuritySnapshot[];
    readonly recentMcpDecisions: readonly McpDecisionRecord[];
    readonly attackPathReview: ReturnType<typeof buildMcpAttackPathReview>;
    readonly plugins: readonly PluginStatus[];
    readonly quarantinedPlugins: readonly PluginStatus[];
    readonly untrustedPlugins: readonly PluginStatus[];
}
export interface UiMcpSnapshot {
    readonly servers: readonly UiMcpServerSnapshot[];
    readonly connectedServerNames: readonly string[];
    readonly availableToolCount: number;
    readonly totalCalls: number;
    readonly totalErrors: number;
    readonly recentDecisions: readonly McpDecisionRecord[];
}
export interface UiLocalAuthSnapshot {
    readonly bootstrapCredentialPresent: boolean;
    readonly userCount: number;
    readonly sessionCount: number;
}
export interface UiSecurityObservabilityReadModels {
    readonly security: UiReadModel<UiSecuritySnapshot>;
    readonly mcp: UiReadModel<UiMcpSnapshot>;
    readonly localAuth: UiReadModel<UiLocalAuthSnapshot>;
}
export declare function createSecurityObservabilityReadModels(runtimeServices: RuntimeServices, options?: import('./ui-read-models-observability-options.js').UiObservabilityReadModelOptions): UiSecurityObservabilityReadModels;
//# sourceMappingURL=ui-read-models-observability-security.d.ts.map