import type { DocumentResolution } from '../merge/useMergeResolution.js'; import type { CherryPickDecisionStatus } from '../versioning/utils/highlightConfig.js'; export type CherryPickSide = 'source' | 'target'; export interface CherryPickPart { key: string; label: string; liveValue: unknown; workstreamValue: unknown; choice: CherryPickSide | null; } export interface CherryPickItem { componentId: string; label: string; kind: 'added-live' | 'added-workstream' | 'modified-both'; reason: string; choice: CherryPickSide | null; parts: CherryPickPart[]; decided: boolean; isCombined: boolean; order: number; } export declare const CHERRY_PICK_INTRO = "Build the final version by choosing Live or your workstream for each change below. Only the changes you pick go live."; export declare const REASON: Record; export declare function previewValue(v: unknown): string; export declare function decidedCount(items: CherryPickItem[]): number; /** * Maps each item's chosen side to a canvas decision status. `target` is * Live, `source` is the workstream — the merged snapshot already reflects * this choice (or its default), so the canvas only needs to know how to * label the box it's rendering. The root/metadata item has no canvas * component to highlight. */ export declare function buildCherryPickDecisionMap(items: CherryPickItem[]): Map; export declare function buildCherryPickItems(doc: DocumentResolution, config: unknown): CherryPickItem[];