export type JournalNodeType = 'decision' | 'design' | 'behavior' | 'process' | 'knowledge' | 'style'; export type JournalNodeStatus = 'adopted' | 'dropped' | 'inconclusive' | 'superseded'; export type JournalLinkType = 'supersedes' | 'refines' | 'relates' | 'depends-on' | 'contradicts' | 'parent'; export interface JournalLink { type: JournalLinkType; target: string; } export interface JournalNodeDocument { id: string; title: string; type: JournalNodeType; topic: string; status: JournalNodeStatus; description: string; timestamp: string; tags: string[]; links: JournalLink[]; supersededBy: string | null; context: string; consequences: string; sourcePath: string; } export declare function slugifyTopic(raw: string): string; export declare function validateJournalLinkSet(nodeId: string, links: JournalLink[], knownIds: Set): void; export declare function allocateNextNodeId(existingIds: string[]): string; export declare function renderNodeFilename(node: Pick): string; export declare function parseJournalNodeDocument(raw: string, sourcePath: string): JournalNodeDocument; export declare function renderNodeMarkdown(node: JournalNodeDocument): string; //# sourceMappingURL=node-codec.d.ts.map