/**
 * Ultra-modes — power-mode keywords the user can drop **anywhere** in a prompt
 * (not only as a leading `/command`). Several can be combined in one prompt as
 * long as they do not conflict; an incompatible pair is reported so the TUI can
 * block the send instead of running a contradictory request.
 *
 *  - `ultramaxx`  — escalate: xhigh reasoning, large step budget, advisors on.
 *  - `ultracheap` — minimize: cheapest model, low reasoning, terse, advisors off.
 *  - `ultrafast`  — speed: lowest-latency settings, fixed short thinking, no advisors.
 *  - `ultrafocus` — restrict the agent to a single file/folder (`ultrafocus:path`).
 *  - `ultraloop`  — expand the run budget and require explicit self-verification
 *                   before the final answer.
 */
export type UltraMode = "maxx" | "cheap" | "fast" | "focus" | "loop";
export declare const ultraModeKeyword: Record<UltraMode, string>;
/** All ultra keywords, longest first so matching is unambiguous. */
export declare const ultraKeywords: readonly string[];
export type UltraModeParse = {
    /** Distinct modes found, in detection order. */
    modes: UltraMode[];
    /** Optional path argument captured from `ultrafocus:<path>` / `ultrafocus <path>`. */
    focusPath: string | null;
    /** The prompt with every ultra keyword (and focus path) removed. */
    cleaned: string;
    /** Human-readable conflict message, or null when the combination is valid. */
    conflict: string | null;
};
/** True when the text contains any ultra keyword (anywhere, not just the start). */
export declare function hasUltraMode(text: string): boolean;
/**
 * Parse every ultra keyword out of a prompt, capture the focus path, strip the
 * keywords, and validate the combination.
 */
export declare function parseUltraModes(text: string): UltraModeParse;
/** A short label like "ultramaxx + ultrafocus" for transcript messages. */
export declare function describeUltraModes(modes: UltraMode[]): string;
export type UltraSegment = {
    text: string;
    /** The ultra mode this segment spells out, or null for plain text. */
    mode: UltraMode | null;
};
/**
 * Split a composer line into plain and ultra-keyword segments so each keyword
 * can be rendered with its own colour gradient — anywhere in the line.
 */
export declare function splitUltraSegments(line: string): UltraSegment[];
