export interface CanonicalComment { user: string; createdAt: string; body: string; } export interface CanonicalIssue { identifier: string; title: string; body: string; state: string; stateType: string; assignees: string[]; labels: string[]; project: string | null; parent: string | null; children: string[]; branchName: string; priority: number; devProgress: string | null; createdAt: string; updatedAt: string; completedAt: string | null; canceledAt: string | null; url: string; comments: CanonicalComment[]; } export declare function stateTypeOf(name: string): 'open' | 'completed' | 'canceled'; /** Normalize a raw `tracker issue view --comments --json` object into the canonical shape. */ export declare function canonicalize(raw: Record): CanonicalIssue; export declare function serializeIssue(c: CanonicalIssue): string; export declare function parseIssue(md: string): CanonicalIssue; /** Fields where the serialized form must round-trip exactly. Returns the names that differ. */ export declare function roundTripDiff(c: CanonicalIssue): string[];