export declare const DASHBOARD_SUMMARY_SCHEMA_VERSION: 1; export interface DashboardSummary { schemaVersion: typeof DASHBOARD_SUMMARY_SCHEMA_VERSION; generatedAt: string; service: { status: 'healthy' | 'degraded'; }; bots: { online: number; }; sessions: { active: number; attention: number; }; schedules: { enabled: number; nextRunAt: string | null; }; dashboard: { href: '/'; }; } interface DashboardSummarySessionRow { status?: unknown; pendingRepo?: unknown; tuiPromptActive?: unknown; agentAttention?: unknown; } interface DashboardSummaryScheduleRow { enabled?: unknown; nextRunAt?: unknown; } /** Validate the minimal daemon row shape consumed by the public projection. * Rejecting malformed live data keeps the endpoint from publishing plausible * but invented operational counts. */ export declare function parseDashboardSummaryRows(input: { sessions: unknown; schedules: unknown; }): { sessions: readonly DashboardSummarySessionRow[]; schedules: readonly DashboardSummaryScheduleRow[]; }; /** * Reduce the dashboard's rich internal read model to a deliberately tiny * public summary contract. Keep the projection here as a positive allowlist: * adding a field to a session, schedule, bot descriptor, or dashboard API can * never make it appear in this response by accident. */ export declare function buildDashboardSummary(input: { generatedAt: Date; configuredBotAppIds: readonly string[]; onlineBotAppIds: readonly string[]; sessions: readonly DashboardSummarySessionRow[]; schedules: readonly DashboardSummaryScheduleRow[]; }): DashboardSummary; /** Minimal, still-whitelisted body for an upstream snapshot failure. Counts * are intentionally absent: returning plausible zeroes would turn missing * daemon state into false operational health. The HTTP handler pairs this with * 503 so consumers can render an unavailable state. */ export declare function unavailableDashboardSummary(generatedAt: Date): Pick; export {}; //# sourceMappingURL=dashboard-summary.d.ts.map