/** * Per-tenant cache of the Cases reference data: case types, primary statuses * and primary verdicts. Fusion filters and sets these by UUID, and the set a * tenant gets depends on its licensed services, so names are resolved at * runtime and the cache is refreshed on a TTL rather than resolved once. */ import type { FusionClient } from "../client/fusion-client.js"; import type { FusionCasePrimaryStatus, FusionCaseType, FusionReferenceItem } from "./types.js"; export interface CaseReferenceData { types: FusionCaseType[]; primaryStatuses: FusionCasePrimaryStatus[]; primaryVerdicts: FusionReferenceItem[]; fetchedAt: string; } export declare const CASE_REFERENCE_DATA_TTL_MS: number; export declare class CaseReferenceDataCache { private client; private ttlMs; private cache; private inflight; constructor(client: FusionClient, ttlMs?: number); get(tenantId: string, options?: { refresh?: boolean; }): Promise; invalidate(tenantId: string): void; /** Accepts a UUID (passed through) or a type name or title (case-insensitive). */ resolveTypeId(tenantId: string, nameOrId: string): Promise; resolveStatusId(tenantId: string, nameOrId: string): Promise; resolveStatus(tenantId: string, nameOrId: string): Promise; resolveVerdictId(tenantId: string, nameOrId: string): Promise; private fetch; } /** Matches on `name` first, then `title`, both case-insensitive. */ export declare function matchReference(kind: string, items: T[], nameOrTitle: string): T; //# sourceMappingURL=case-reference-data.d.ts.map