/**
 * Persona-specific logic for the init command.
 * Types, use-case mappings, template selection, and post-scaffold output.
 */
export type PersonaId = 'nocode' | 'vibecoder' | 'lowcode' | 'expert';
export type UseCaseId = 'data' | 'ai' | 'api' | 'automation' | 'minimal';
export declare const PERSONA_CHOICES: {
    value: PersonaId;
    name: string;
    description: string;
}[];
/** One-liner printed after persona selection to set expectations. null = skip. */
export declare const PERSONA_CONFIRMATIONS: Record<PersonaId, string | null>;
export declare const USE_CASE_CHOICES: {
    value: UseCaseId;
    name: string;
    description: string;
}[];
export interface UseCaseMapping {
    default: string;
    all: string[];
}
export declare const USE_CASE_TEMPLATES: Record<string, UseCaseMapping>;
/**
 * Register a use case contributed by a pack.
 * Adds the use case choice and template mapping so it appears in fw init.
 */
export declare function registerPackUseCase(useCase: {
    id: string;
    name: string;
    description: string;
}, templates: string[]): void;
/**
 * Select the template for a given persona and use-case.
 * For lowcode, returns the full list when the category has multiple templates.
 * For nocode/vibecoder, always returns the single default.
 */
export declare function selectTemplateForPersona(persona: PersonaId, useCase: UseCaseId | string): {
    template: string;
    choices?: string[];
};
/**
 * Build the template sub-choice list for inquirer, when lowcode needs to pick
 * from multiple templates within a use-case category.
 */
export declare function getTemplateSubChoices(templateIds: string[]): Array<{
    value: string;
    name: string;
    description: string;
}>;
/**
 * Extract @path annotations from generated workflow code and format as a
 * visual flow line. Falls back to extracting @node labels if no @path found.
 */
export declare function extractWorkflowPreview(workflowCode: string): string | null;
export declare const FILE_DESCRIPTIONS: Record<string, string>;
export declare function generateReadme(projectName: string, persona: PersonaId, _template: string): string;
export declare function generateExampleWorkflow(projectName: string): string;
export interface PrintNextStepsOptions {
    projectName: string;
    persona: PersonaId;
    template: string;
    displayDir: string | null;
    installSkipped: boolean;
    workflowCode: string | null;
    workflowFile: string;
    mcpConfigured?: string[];
    /** When true, skip persona-specific guidance (the agent handles it) */
    agentLaunched?: boolean;
    /** When true, the workflow was auto-compiled and npm start works immediately */
    compiled?: boolean;
}
export declare function printNextSteps(opts: PrintNextStepsOptions): void;
/** Maps each persona to the fw_context preset used for agent knowledge bootstrap. */
export declare const AGENT_CONTEXT_PRESETS: Record<PersonaId, string>;
/**
 * Generate the initial prompt for a CLI agent (Claude Code, Codex).
 * Interpolates project name and template into the persona-specific template.
 */
export declare function generateAgentPrompt(projectName: string, persona: PersonaId, template: string, useCaseDescription?: string): string;
/**
 * Generate a shorter prompt suitable for pasting into a GUI editor.
 * Persona-aware but more concise than the full agent prompt.
 */
export declare function generateEditorPrompt(projectName: string, persona: PersonaId, template: string, useCaseDescription?: string): string;
/**
 * Generate the full content for a PROJECT_SETUP.md file.
 * Includes the agent prompt plus project context.
 */
export declare function generateSetupPromptFile(projectName: string, persona: PersonaId, template: string, filesCreated: string[], useCaseDescription?: string): string;
/**
 * Print a copyable prompt in a bordered box.
 * Long lines are word-wrapped to fit within the box.
 */
export declare function printCopyablePrompt(prompt: string): void;
/** Default for the "Launch agent?" confirm prompt per persona */
export declare const AGENT_LAUNCH_DEFAULTS: Record<PersonaId, boolean>;
//# sourceMappingURL=init-personas.d.ts.map