import { brandColor } from "./colors.mjs"; import { OptionWithDetails, SelectRefreshablePrompt } from "./select-list.mjs"; import { ConfirmPrompt, MultiSelectPrompt, Prompt, SelectPrompt, TextPrompt } from "@clack/core"; //#region interactive.d.ts type Arg = string | boolean | string[] | undefined | number; declare const grayBar: string; declare const blCorner: string; declare const leftT: string; type Option = { label: string; sublabel?: string; description?: string; value: string; hidden?: boolean; activeIcon?: string; inactiveIcon?: string; }; type BasePromptConfig = { question: string; helpText?: string; defaultValue?: Arg; initialErrorMessage?: string | null; acceptDefault?: boolean; label: string; format?: (value: Arg) => string; validate?: (value: Arg) => string | Error | undefined; renderers?: Partial>; throwOnError?: boolean; }; type TextPromptConfig = BasePromptConfig & { type: "text"; initialValue?: string; }; type BaseSelectPromptConfig = BasePromptConfig & { options: Option[]; maxItemsPerPage?: number; }; type SelectPromptConfig = BaseSelectPromptConfig & { type: "select"; }; type MultiSelectPromptConfig = BaseSelectPromptConfig & { type: "multiselect"; }; type ConfirmPromptConfig = BasePromptConfig & { type: "confirm"; activeText?: string; inactiveText?: string; }; type ListPromptConfig = BasePromptConfig & { type: "list"; options: OptionWithDetails[]; onRefresh?: () => Promise; }; type PromptConfig = TextPromptConfig | ConfirmPromptConfig | SelectPromptConfig | MultiSelectPromptConfig | ListPromptConfig; type RenderProps = Omit, "prompt"> | Omit, "prompt"> | Omit | Omit | Omit; declare const inputPrompt: (promptConfig: PromptConfig) => Promise; type Renderer = (props: { state?: string; error?: string; cursor?: number; value: Arg; }, prompt: Prompt) => string[]; declare const getRenderers: (config: PromptConfig) => { initial: Renderer; active: Renderer; confirm: Renderer; error: (opts: { value: Arg; error: string; }, prompt: Prompt) => string[]; submit: ({ value }: { value: Arg; }) => string[]; cancel: Renderer; } | { initial: Renderer; active: Renderer; confirm: Renderer; error: Renderer; submit: ({ value }: { value: Arg; }) => string[]; cancel: Renderer; } | { initial: () => string[]; active: (props: RenderProps) => string[]; error: ({ value, error }: { value: Arg; error: string; }) => string[]; submit: ({ value }: { value: Arg; }) => string[]; cancel: (props: RenderProps) => string[]; }; type SpinnerStyle = keyof typeof spinnerFrames; declare const spinnerFrames: { clockwise: string[]; vertical: string[]; }; declare const spinner: (frames?: string[], color?: typeof brandColor) => { start(msg: string, helpText?: string): void; update(msg: string): void; stop(msg?: string): void; }; type FactoryOrValue = T$1 | (() => T$1); declare const spinnerWhile: (opts: { promise: FactoryOrValue>; startMessage: FactoryOrValue; endMessage?: FactoryOrValue; spinner?: ReturnType; }) => Promise; /** * Test whether the process is "interactive". */ declare function isInteractive(): boolean; //#endregion export { Arg, BasePromptConfig, BaseSelectPromptConfig, ConfirmPromptConfig, ListPromptConfig, MultiSelectPromptConfig, Option, PromptConfig, SelectPromptConfig, SpinnerStyle, TextPromptConfig, blCorner, getRenderers, grayBar, inputPrompt, isInteractive, leftT, spinner, spinnerFrames, spinnerWhile };