/** * Phase 5 (v13) path resolution — prefer the new prose outline files, fall * back to legacy paths so older books keep working during transition. * * Maps: * story/outline/story_frame.md → preferred replacement for story_bible.md * story/outline/volume_map.md → preferred replacement for volume_outline.md * story/roles/主要角色/*.md + * story/roles/次要角色/*.md → preferred replacement for character_matrix.md * * All helpers accept a bookDir (path to a book root, containing `story/`) * and return a string — either the new-file content when it exists, or the * legacy file content, or an empty default placeholder. */ /** * Detect whether a book uses the Phase 5 new layout (outline/story_frame.md * exists on disk). If yes, story_bible.md / book_rules.md are compat shims. * If no, those files ARE the authoritative source. */ export declare function isNewLayoutBook(bookDir: string): Promise; /** Read story_frame.md, falling back to legacy story_bible.md. */ export declare function readStoryFrame(bookDir: string, fallbackPlaceholder?: string): Promise; /** Read volume_map.md, falling back to legacy volume_outline.md. */ export declare function readVolumeMap(bookDir: string, fallbackPlaceholder?: string): Promise; /** Read the rhythm principles file (zh or en variant). */ export declare function readRhythmPrinciples(bookDir: string): Promise; export interface RoleCard { readonly tier: "major" | "minor"; readonly name: string; readonly content: string; } /** * Read the roles/ directory. Returns [] when no roles are present (e.g. old * books still on character_matrix.md). */ export declare function readRoleCards(bookDir: string): Promise>; /** * Render role cards in a format compatible with downstream consumers that * previously expected character_matrix.md prose. When no role cards exist, * returns the legacy character_matrix.md content or the placeholder. */ export declare function readCharacterContext(bookDir: string, fallbackPlaceholder?: string): Promise; export declare function isCurrentStateSeedPlaceholder(raw: string): boolean; /** * Read current_state.md; when the file is only a seed placeholder (chapter 0, * before consolidator has appended anything), derive an initial-state block * from roles/*.Current_State + pending_hooks startChapter=0 rows so callers * still have substantive content to feed into writer / analyzer prompts. */ export declare function readCurrentStateWithFallback(bookDir: string, fallbackPlaceholder?: string): Promise; //# sourceMappingURL=outline-paths.d.ts.map