import type { DatabaseAdapter } from '../db-manager.js'; export type MergeCaseErrorCode = 'case.confirmation_required' | 'case.merge_self' | 'case.merge_chain_cycle' | 'case.terminal_status'; export interface MergeCasesInput { loser_case_id: string; survivor_case_id: string; reason: string; confirmed: true; confirmed_by: string; confirmation_summary: string; now?: string; } export type MergeCasesResult = { kind: 'merged'; loser_case_id: string; survivor_case_id: string; audit_event_id: string; } | { kind: 'precompile_gap'; code: 'case.precompile_gap'; case_id: string; } | { kind: 'rejected'; code: MergeCaseErrorCode; message: string; }; export interface SplitCaseChildPlan { title: string; current_wiki_path?: string | null; membership_sources: Array<{ source_type: 'decision' | 'event' | 'observation' | 'artifact'; source_id: string; remove_from_parent?: boolean; }>; } export interface SplitCaseInput { parent_case_id: string; children: SplitCaseChildPlan[]; trusted_child_case_ids: string[]; reason: string; confirmed: true; confirmed_by: string; confirmation_summary: string; now?: string; } export type SplitCaseResult = { kind: 'split'; parent_case_id: string; child_case_ids: string[]; audit_event_id: string; } | { kind: 'precompile_gap'; code: 'case.precompile_gap'; case_id: string; } | { kind: 'rejected'; code: 'case.confirmation_required' | 'case.terminal_status' | 'case.split_requires_two_children' | 'case.child_id_not_trusted' | 'case.child_id_count_mismatch'; message: string; }; export declare function mergeCases(adapter: DatabaseAdapter, input: MergeCasesInput): MergeCasesResult; export declare function splitCase(adapter: DatabaseAdapter, input: SplitCaseInput): SplitCaseResult; //# sourceMappingURL=merge-split.d.ts.map