import { type RalphLoopAgentWorkload } from "./helpers.js"; import type { BrokerMaintenanceResult } from "./broker/maintenance.js"; import type { RalphSnoozeStatus } from "./ralph-loop.js"; import type { PinetLaneInfo, TaskAssignmentInfo } from "./broker/types.js"; import { type BrokerControlPlaneDashboardSnapshot, type BrokerControlPlaneRecentCycle } from "./broker/control-plane-dashboard.js"; export type PinetControlPlaneDashboardAgentRecord = Omit; export interface PinetControlPlaneDashboardMessageRecord { id: number; body: string; } export interface PinetControlPlaneDashboardBrokerDbPort { getAllAgents: () => PinetControlPlaneDashboardAgentRecord[]; getPendingInboxCount: (agentId: string) => number; getOwnedThreadCount: (agentId: string) => number; getBacklogCount: (status: "pending") => number; listTaskAssignments: () => TaskAssignmentInfo[]; listPinetLanes: (options?: { includeDone?: boolean; }) => PinetLaneInfo[]; getMessagesByIds: (ids: number[]) => PinetControlPlaneDashboardMessageRecord[]; getRecentRalphCycles: (limit: number) => BrokerControlPlaneRecentCycle[]; } export interface PinetControlPlaneDashboardDeps { getActiveBrokerDb: () => PinetControlPlaneDashboardBrokerDbPort | null; getActiveBrokerSelfId: () => string | null; heartbeatTimerActive: () => boolean; maintenanceTimerActive: () => boolean; getLastMaintenance: () => BrokerMaintenanceResult | null; getRalphSnoozeStatus?: () => RalphSnoozeStatus | null; } export interface PinetControlPlaneDashboard { buildCurrentBrokerControlPlaneDashboardSnapshot: (cycleStartedAt?: string) => Promise; } export declare function createPinetControlPlaneDashboard(deps: PinetControlPlaneDashboardDeps): PinetControlPlaneDashboard;