import type { OrgXClient } from "../api.js"; import type { AutoAssignedAgent } from "../entities/auto-assignment.js"; import type { RegisteredTool } from "../mcp-http-handler.js"; import type { OrgSnapshot, ReportingPhase, ReportingSourceClient } from "../types.js"; export interface ToolResult { content: Array<{ type: "text"; text: string; }>; } export type RegisterToolFn = (tool: { name: string; description: string; parameters: Record; execute: (callId: string, params?: any) => Promise; }, options?: { optional?: boolean; }) => void; export interface RegisterCoreToolsDeps { registerTool: RegisterToolFn; client: OrgXClient; config: { syncIntervalMs: number; pluginVersion?: string | null; }; getCachedSnapshot: () => OrgSnapshot | null; getLastSnapshotAt: () => number; doSync: () => Promise; text: (value: string) => ToolResult; json: (label: string, data: unknown) => ToolResult; formatSnapshot: (snapshot: OrgSnapshot) => string; autoAssignEntityForCreate: (input: { entityType: string; entityId: string; initiativeId: string | null; title: string; summary: string | null; }) => Promise<{ updatedEntity?: unknown; assignmentSource: "orchestrator" | "fallback" | "manual"; assignedAgents: AutoAssignedAgent[]; warnings: string[]; }>; toReportingPhase: (phase: string, progressPct?: number) => ReportingPhase; inferReportingInitiativeId: (input: Record) => string | undefined; isUuid: (value: string | undefined) => value is string; pickNonEmptyString: (...values: Array) => string | undefined; resolveReportingContext: (input: Record) => { ok: true; value: { initiativeId: string; runId?: string; correlationId?: string; sourceClient?: ReportingSourceClient; }; } | { ok: false; error: string; }; readSkillPackState: () => import("../skill-pack-state.js").SkillPackState; updateSkillPackPolicy: (input: { frozen?: boolean; pinnedChecksum?: string | null; pinToCurrent?: boolean; clearPin?: boolean; }) => import("../skill-pack-state.js").SkillPackState; rollbackSkillPackPolicy: (input?: { auditId?: string; }) => import("../skill-pack-state.js").SkillPackState; randomUUID?: () => string; sessionStore?: { workstreamSessionStore: Map; getWorkstreamSession: (workstreamId: string) => { sessionId: string; workstreamId: string; initiativeId: string; sourceClient: string; capturedAt: string; fromRunId: string; } | null; setWorkstreamSession: (workstreamId: string, entry: { sessionId: string; workstreamId: string; initiativeId: string; sourceClient: string; capturedAt: string; fromRunId: string; }) => void; clearWorkstreamSession: (initiativeId: string) => void; }; } export declare function registerCoreTools(deps: RegisterCoreToolsDeps): Map;