/** * Issue fact builders for Iranti's structured issue tracking. * * Constructs normalized fact values and property blocks for `issue_status` * durable class entries. Issue facts carry lifecycle state (open/resolved), * severity, and semantic tags so retrieval can filter by issue status. * * The `issueId` is normalized (trim → lowercase → snake_case) when building * the canonical key, so callers can pass human-readable IDs like "DB Migration * Failing" and receive a stable key like `issue_db_migration_failing`. * * Key exports: * - buildIssueFactWrite() — full write payload for iranti_write_issue * - buildIssueFactValue() — the raw fact value object * - buildIssueFactProperties() — the properties block with semantic tags * - issueFactKey() — normalize an issueId to "issue_{token}" key */ export type IssueStatus = 'open' | 'resolved'; export type IssueSeverity = 'low' | 'medium' | 'high' | 'critical'; export type IssueFactInput = { entity: string; issueId: string; title: string; status: IssueStatus; summary: string; confidence: number; source: string; agent: string; severity?: IssueSeverity; details?: unknown; discoveredAt?: string; resolvedAt?: string; resolution?: string; tags?: string[]; validFrom?: Date; requestId?: string; properties?: Record; }; export declare function issueFactKey(issueId: string): string; export declare function buildIssueFactValue(input: IssueFactInput): Record; export declare function buildIssueFactProperties(input: IssueFactInput): Record; export declare function buildIssueFactWrite(input: IssueFactInput): { entity: string; key: string; value: Record; summary: string; confidence: number; source: string; agent: string; validFrom: Date | undefined; requestId: string | undefined; properties: Record; }; //# sourceMappingURL=issueFacts.d.ts.map