/** * CiteFlowApp - Single App for cite command flow * * Implements the Single App Pattern (ADR-015) for the cite command. * Manages state transitions: reference selection → style selection → exiting */ import type React from "react"; import type { CslItem } from "../../../core/csl-json/types.js"; import { type SelectOption } from "../components/Select.js"; import type { Choice, SortOption } from "../components/index.js"; /** * Result from the cite flow */ export interface CiteFlowResult { /** Selected reference IDs */ identifiers: string[]; /** Selected style (if style selection was shown) */ style?: string; /** Whether the flow was cancelled */ cancelled: boolean; } /** * Props for CiteFlowApp */ export interface CiteFlowAppProps { /** All reference choices */ choices: Choice[]; /** Filter function for search */ filterFn: (query: string, choices: Choice[]) => Choice[]; /** Number of visible items */ visibleCount: number; /** Default sort option */ defaultSort: SortOption; /** Style options for style selection */ styleOptions: SelectOption[]; /** Whether to show style selection (false if style already specified) */ showStyleSelect: boolean; /** Callback when flow completes */ onComplete: (result: CiteFlowResult) => void; /** Callback when flow is cancelled */ onCancel: () => void; } /** * CiteFlowApp component * * Single Ink app that handles the entire cite flow: * 1. Reference selection (SearchableMultiSelect) * 2. Style selection (Select) - optional * 3. Exit */ export declare function CiteFlowApp({ choices, filterFn, visibleCount, defaultSort, styleOptions, showStyleSelect, onComplete, onCancel, }: CiteFlowAppProps): React.ReactElement; //# sourceMappingURL=CiteFlowApp.d.ts.map