import type { ParsedSlashCommand, SlashCommandResult, SlashCommandRuntime } from "../types";
export interface ParsedSubcommand {
    verb: string;
    rest: string;
}
export type ConfigScope = "user" | "project";
export interface NamedScopeArgs {
    name?: string;
    scope: ConfigScope;
    error?: string;
}
/**
 * Parse a slash-invocation string into `name`/`args`.
 *
 * The separator is the earliest whitespace or `:` character so that both
 * `/foo bar` and `/foo:bar` map to `{ name: "foo", args: "bar" }`.
 */
export declare function parseSlashCommand(text: string): ParsedSlashCommand | null;
/** Mark a command as fully consumed in the ACP shape. */
export declare function commandConsumed(): {
    consumed: true;
};
/** Emit a usage/error message and consume the command. */
export declare function usage(text: string, runtime: SlashCommandRuntime): Promise<SlashCommandResult>;
/** Split `<verb> <rest>` on the first whitespace; lowercases `verb`. */
export declare function parseSubcommand(input: string): ParsedSubcommand;
export declare function errorMessage(error: unknown): string;
/**
 * Parse `<name?> [--scope project|user]`-style argument strings used by
 * remove/rm-style subcommands. `name` is optional so callers can surface
 * "name required" diagnostics with their own messaging.
 */
export declare function parseNamedScopeArgs(rest: string, invalidScopeMessage: string): NamedScopeArgs;
