import type { DatabaseAdapter } from '../db-manager.js'; import type { CaseMembershipSourceType } from './types.js'; export interface CaseCompositionCasInput { expected_current_value_json?: string | null; reconfirm_token?: string | null; session_id?: string | null; } export interface PinCaseMembershipInput extends CaseCompositionCasInput { case_id: string; source_type: CaseMembershipSourceType; source_id: string; pinned_by: string; reason: string; now?: string; } export interface UnpinCaseMembershipInput extends CaseCompositionCasInput { case_id: string; source_type: CaseMembershipSourceType; source_id: string; unpinned_by: string; reason?: string | null; now?: string; } export interface PromoteCaseSourceInput extends CaseCompositionCasInput { case_id: string; source_type: 'decision' | 'event' | 'observation' | 'artifact'; source_id: string; promoted_by: string; reason: string; now?: string; } export interface CaseCompositionRequiresReconfirmResult { kind: 'requires_reconfirm'; code: 'case.correction_requires_reconfirm'; case_id: string; target_kind: 'membership'; target_ref_json: string; current_value_json: string; old_value_json: string | null; proposed_new_value_json: string; reconfirm_token: string; reconfirm_token_expires_at: string; message: string; } export type CaseCompositionRejectedCode = 'case.precompile_gap' | 'case.terminal_status' | 'case.membership_not_found' | 'case.membership_stale' | 'case.promote_invalid_source_type' | 'case.promote_source_not_active' | 'case.reconfirm_token_replayed'; export type PinCaseMembershipResult = { kind: 'pinned'; case_id: string; terminal_case_id: string; resolved_via_case_id: string | null; chain: string[]; membership_case_id: string; } | CaseCompositionRequiresReconfirmResult | { kind: 'rejected'; code: CaseCompositionRejectedCode; message: string; case_id?: string; }; export type UnpinCaseMembershipResult = { kind: 'unpinned'; case_id: string; terminal_case_id: string; resolved_via_case_id: string | null; chain: string[]; membership_case_id: string; } | CaseCompositionRequiresReconfirmResult | { kind: 'rejected'; code: CaseCompositionRejectedCode; message: string; case_id?: string; }; export type PromoteCaseSourceResult = { kind: 'promoted'; case_id: string; terminal_case_id: string; resolved_via_case_id: string | null; chain: string[]; membership_case_id: string; canonical_decision_id: string | null; canonical_event_id: string | null; } | CaseCompositionRequiresReconfirmResult | { kind: 'rejected'; code: CaseCompositionRejectedCode; message: string; case_id?: string; }; export declare function pinCaseMembership(adapter: DatabaseAdapter, input: PinCaseMembershipInput): PinCaseMembershipResult; export declare function unpinCaseMembership(adapter: DatabaseAdapter, input: UnpinCaseMembershipInput): UnpinCaseMembershipResult; export declare function promoteCaseSource(adapter: DatabaseAdapter, input: PromoteCaseSourceInput): PromoteCaseSourceResult; //# sourceMappingURL=composition-overrides.d.ts.map