// src/types.ts // ============================================================================ // SHARED TYPE DEFINITIONS // ============================================================================ export interface DocumentUrls { web: string; // View on TNA website pdf: string; // PDF download/embed xml: string; // Machine-readable LegalDocML } export interface CaseMetadata { id?: string; documentUri: string; neutralCitation: string | null; title: string; court: string; courtName: string; date: string | null; source: 'tna' | 'bailii'; urls: DocumentUrls; } export interface CaseParagraph { number: number; text: string; } export interface CaseContent { metadata: CaseMetadata; paragraphs: CaseParagraph[]; judges?: string[]; parties?: { claimants: string[]; defendants: string[]; }; truncated: boolean; remainingParagraphs: number; } export interface SearchResult { documentUri: string; neutralCitation: string | null; title: string; court: string; date: string | null; snippet: string; source: 'tna' | 'bailii'; score: number; urls: DocumentUrls; } export interface CitationResult { citation: string; title: string; court: string; date: string | null; relationship: 'citing' | 'cited'; }