import { SelectionState } from './selection'; /** * Prompts interativos para os schematics. * * O `@inquirer/prompts` não é dependência do angular-components: usamos o que já vem com o `@angular/cli` * do projeto que está rodando o schematic (resolvido a partir do `cwd`). Se não for possível carregá-lo * (sem TTY, CI, CLI sem a lib, formato incompatível) as funções retornam `undefined` e quem chama decide * o valor padrão — nunca lançam. */ export interface PromptItem { id: string; label: string; } interface InquirerCore { createPrompt: (view: (config: any, done: (value: any) => void) => any) => (config: any) => Promise; useState: (initial: T) => [T, (value: T) => void]; useKeypress: (handler: (key: { name?: string; }) => void) => void; } interface InquirerPrompts { confirm: (config: { message: string; default?: boolean; }) => Promise; input: (config: { message: string; default?: string; }) => Promise; checkbox: (config: { message: string; choices: Array<{ name: string; value: string; checked?: boolean; }>; }) => Promise; } interface LoadedInquirer { core?: InquirerCore; prompts: InquirerPrompts; } export declare function isInteractive(): boolean; /** Carrega o inquirer do `@angular/cli` do projeto. Retorna `null` quando indisponível. */ export declare function loadInquirer(cwd?: string): LoadedInquirer | null; /** Só para testes. */ export declare function resetInquirerCache(): void; /** Renderiza o checkbox (função pura, usada pelo prompt e testável). */ export declare function renderChecklist(message: string, entries: Array<{ id: string; label: string; }>, state: SelectionState, activeIndex: number): string; /** * Pergunta quais itens executar, com "Marcar todos" sincronizado. Retorna os ids escolhidos, ou * `undefined` se não houver como perguntar (quem chama deve então rodar tudo). */ export declare function askMigrations(message: string, items: PromptItem[]): Promise; export declare function askConfirm(message: string, defaultValue: boolean): Promise; export declare function askInput(message: string, defaultValue: string): Promise; /** Checkbox simples (sem "Marcar todos"). Retorna `undefined` se não for possível perguntar. */ export declare function askChoices(message: string, items: PromptItem[], checkedByDefault?: boolean): Promise; export {};