import { type Component } from "@oh-my-pi/pi-tui";
import type { InteractiveModeContext } from "../types.js";
/**
 * Renders the MCP OAuth fallback URL. Always shows the full authorization URL
 * as the primary `Copy URL:` target — that works from any machine, including
 * SSH/WSL/headless sessions where the OMP-hosted `/launch` loopback URL would
 * resolve against the user's local browser and fail.
 *
 * The render is `width`-aware: on any viewport narrower than the composed row
 * ({@link TUI#prepareLine} truncates anything wider with `Ellipsis.Omit`, no
 * marker), the URL is hard-wrapped into width-fitted rows so the primary copy
 * target can never silently lose trailing OAuth parameters — the failure mode
 * that motivated #4418 in the first place. Browsers strip whitespace when a
 * multi-row selection is pasted into the address bar, so the reassembled URL
 * is byte-identical to what we rendered.
 *
 * When the flow's callback server hosts a short `launchUrl`, it is offered
 * as an additional local shortcut for wide-terminal local users. The OSC 8
 * hyperlink continues to carry the full URL for terminals that support it.
 */
export declare class MCPAuthorizationLinkPrompt implements Component {
    #private;
    constructor(url: string, launchUrl?: string);
    invalidate(): void;
    render(width: number): readonly string[];
}
/**
 * Thrown by {@link MCPCommandController}'s OAuth handler when the user (or a
 * caller-supplied {@link AbortSignal}) cancels the in-flight flow. Distinct
 * from network/timeout failures so callers can surface a neutral
 * "cancelled" status instead of an error banner.
 */
export declare class MCPOAuthCancelledError extends Error {
    constructor(message?: string);
}
export declare class MCPCommandController {
    #private;
    private ctx;
    constructor(ctx: InteractiveModeContext);
    /**
     * Handle /mcp command and route to subcommands
     */
    handle(text: string): Promise<void>;
}
