/**
 * `PROFILES` — Smithy's starter agent templates.
 *
 * A *profile* is a named, partial {@link AgentBlueprint}: the sensible-default
 * skeleton for a common kind of agent. It is deliberately incomplete — it never
 * fixes a `name` (that is the one thing a caller must always supply) — but it
 * pins the defaults that distinguish, say, a read-only researcher from a
 * file-mutating coder: the tool collection, a baseline model, a starter system
 * prompt, and a description.
 *
 * The {@link defineAgent} generator merges a chosen profile *under* a caller's
 * spec (spec wins on every field) and validates the result. So the profile table
 * collapses what would otherwise be a family of near-identical `create*Agent`
 * factory functions into one data table plus one generator. Adding a new kind of
 * starter agent is a single entry here, not a new function.
 *
 * All prose below — every description and system prompt — is original to this
 * codebase.
 */
import type { AgentBlueprint } from "./blueprint";
/**
 * A profile is a partial blueprint with `name` removed: the one field a profile
 * never decides on the caller's behalf.
 */
export type AgentProfile = Partial<Omit<AgentBlueprint, "name">>;
/** The names of the starter profiles this module ships. */
export type ProfileName = "coder" | "researcher" | "reviewer";
/**
 * The starter profile table.
 *
 * Each entry is a complete-enough skeleton that, combined with a name, validates
 * as a blueprint on its own — so `defineAgent({ name }, "researcher")` works with
 * no further input.
 */
export declare const PROFILES: Readonly<Record<ProfileName, AgentProfile>>;
/** The profile names as an array, for menus and validation. */
export declare const PROFILE_NAMES: readonly ProfileName[];
/** Type guard: whether a string names a known profile. */
export declare function isProfileName(value: string): value is ProfileName;
/**
 * Look up a profile by name. Returns the partial blueprint, or `undefined` when
 * the name is not in the table.
 */
export declare function getProfile(name: string): AgentProfile | undefined;
