/** * Slice Pick Service — thin wrapper around the generic fzf picker. * * integration is now in `src/services/fuzzy-matching/fzf-pick-service.ts`. * This file only knows how to format / parse SliceCandidate rows and * pick the output path. The algorithm itself (slice-decompose-service) * is fzf-free; fzf is the *consumer* of the algorithm output, not an * input to it. v3 can swap fzf for a different selector (skim, peco) * by replacing this file — the algorithm is unaffected. */ import type { DecompositionResult, SliceCandidate } from './slice-decompose-types.js'; export interface PickOptions { /** When true, render side-by-side preview in fzf (recommended; needs fzf >= 0.38). */ preview?: boolean; /** Override fzf binary path (default: 'fzf'). Useful for tests. */ fzfBin?: string; /** Override stdin content for tests; bypasses the actual spawning. */ overrideStdin?: string; } export interface PickedResult { picked: readonly SliceCandidate[]; outputPath: string; fzfVersion: string; } export declare function pickSlicesInteractive(rid: string, decomposition: DecompositionResult, projectRoot: string, options?: PickOptions): Promise; /** * Re-export the fzf pick-service primitives for callers that want to * build their own pickers without depending on the slice namespace. */ export { pickFromList } from '../fuzzy-matching/fzf-pick-service.js'; export type { FzfPickOptions, FzfPickResult } from '../fuzzy-matching/fzf-pick-service.js';