/**
 * Human-readable text rendering for the SaaS bridge's discovery and linking views.
 *
 * Where {@link "./summarizers"} answers "what did *one* result say in a line", this
 * module answers "how do I show a *list* of remote tools, or the current connection
 * picture, as a readable block". These are the formatters the control tools and the
 * gateway reach for when they want prose rather than raw JSON — a toolkit roster, an
 * operation catalog, a connected-account summary, a freshly opened link request.
 *
 * Everything here is pure: data in, string out, no I/O and no backend. Each function
 * returns a single text block (lines joined by `\n`) so callers can drop it straight
 * into a `{ kind: "text", text }` content block. The formatting is deliberately
 * plain — aligned-ish lists and short headers — so it reads well both in a terminal
 * and when handed back to the model.
 */
import type { ToolkitInfo, RemoteTool, ConnectedAccount, ConnectionRequest, ConnectionState } from "../core/port";
/**
 * Render the connectable-toolkit roster.
 *
 * One line per toolkit: a connection mark when the backend reported `connected`,
 * the slug, the human name, and a clipped description. An empty catalog renders a
 * single explanatory line rather than a bare header.
 */
export declare function formatToolkitList(toolkits: readonly ToolkitInfo[]): string;
/**
 * Render the operations one toolkit exposes.
 *
 * One line per operation: its invocation slug and a clipped description. The header
 * names the toolkit (taken from the first entry) so the block is self-describing.
 */
export declare function formatToolList(tools: readonly RemoteTool[]): string;
/**
 * Render the user's connected accounts.
 *
 * One line per account: its normalized status, the toolkit it links, its id, and the
 * last-updated timestamp when the backend supplied one. An empty list renders a
 * single line inviting a connect flow.
 */
export declare function formatConnectedAccounts(accounts: readonly ConnectedAccount[]): string;
/**
 * Render a freshly opened connection request.
 *
 * Surfaces the actionable bit first: an `authUrl` to visit when one is present, an
 * "already active" note when it is, or the raw status otherwise. The request id is
 * always shown so the user can poll it via saas.status.
 */
export declare function formatConnectionRequest(request: ConnectionRequest): string;
/**
 * Render a polled connection-request snapshot.
 *
 * Shows the request's current status and, depending on where it is, either the
 * linked account id (once active) or a still-pending authorization URL.
 */
export declare function formatConnectionState(state: ConnectionState): string;
