/**
 * console-commands.ts — Slash command definitions and pure helpers.
 *
 * Extracted from ConsoleView so they can be imported in tests without
 * pulling in React / Ink / store dependencies.
 */
import { RunPhase, type WizardSession } from '../../lib/wizard-session.js';
/**
 * Slash command registry.
 *
 * `requiresIdle: true` flags commands that mutate session credentials, region,
 * or org/project selection. Running these mid-flight pulls the rug out from
 * under the active agent — its in-flight Amplitude API / MCP calls would
 * silently fail or, worse, succeed against the wrong project. The console
 * dispatcher checks this flag and surfaces a friendly message instead of
 * dispatching while `runPhase === Running`.
 */
export interface CommandDef {
    cmd: string;
    desc: string;
    /** When true, the command is blocked while a setup run is active. */
    requiresIdle?: boolean;
}
export declare const COMMANDS: CommandDef[];
/**
 * Returns true when the first whitespace-delimited token of `input` exactly
 * matches a registered slash command. Used by ConsoleView.handleSubmit to
 * distinguish real commands (/region) from slash-prefixed queries like
 * "/lib/config.ts is broken" or partial prefixes like "/r".
 */
export declare function isKnownCommand(input: string): boolean;
/**
 * Returns the user-facing message to surface when a `requiresIdle` command
 * is invoked during an active run, or `null` if the command is allowed to
 * proceed in the current `runPhase`.
 *
 * Pure (no store / I/O) so it can be unit-tested without React or nanostores.
 */
export declare function checkCommandBlockedByRun(cmd: string, runPhase: RunPhase): string | null;
/**
 * Parses `/create-project <name>` from a slash command line.
 * Returns the trimmed name, or an empty string when no name was given.
 * Returns `undefined` if the line isn't a `/create-project` command.
 */
export declare function parseCreateProjectSlashInput(raw: string): string | undefined;
/** Returns the feedback text for the /whoami command. */
export declare function getWhoamiText(session: Pick<WizardSession, 'selectedOrgId' | 'selectedOrgName' | 'selectedProjectName' | 'selectedEnvName' | 'region' | 'credentials' | 'userEmail'>): string;
/**
 * Build the human-readable text for the `/diagnostics` slash command.
 *
 * Shows where every wizard-managed file lives for the current project so a
 * user filing a bug report knows exactly which log to attach. Pure (no I/O)
 * so it can be unit-tested without filesystem mocks.
 */
export declare function getDiagnosticsText(installDir: string): string;
/**
 * Parses `/feedback <message>` from a slash command line.
 * Returns `undefined` if the line is not a feedback command or the message is empty.
 */
export declare function parseFeedbackSlashInput(raw: string): string | undefined;
