/**
 * Public, versioned summary of an Eve agent emitted by `eve`
 * during `eve build`.
 *
 * This schema is the stable contract between Eve and Vercel platform
 * surfaces (eg. the dashboard's project overview card). It is intentionally
 * smaller and more conservative than the internal {@link CompiledAgentManifest}
 * — only fields safe to render in product UI live here, and the schema is
 * versioned independently of the internal compiler manifest.
 *
 * **Storage** — the file is written to {@link VERCEL_EVE_AGENT_SUMMARY_OUTPUT_PATH}
 * (under the agent's `appRoot`, outside the Build Output API surface). On
 * Vercel deployments, the build container uploads it to a top-level S3
 * artifact at `<projectId>/<deploymentId>/eve_agent_summary.json` — the
 * same tier as `deploy_metadata.json` and `turbo_summary.json`, never
 * reachable from the public CDN. The dashboard reads it through the
 * dedicated `/v6/deployments/:id/files/eve-agent-summary` endpoint with
 * team-scoped authentication.
 *
 * **Privacy** — non-public by storage location. The summary contains
 * user-authored business logic (tool descriptions, connection URLs,
 * source paths, subagent prompts) and is never served on the deployment
 * URL because the public proxy only resolves URLs against `basepath/`.
 *
 * **Self-hosted setups** — the file exists at the same path on disk
 * (`<appRoot>/.eve/agent-summary.json`) and is consumed by whatever
 * HTTP layer the operator wires up.
 */
/**
 * Stable schema kind embedded in every emitted summary file.
 */
export declare const VERCEL_EVE_AGENT_SUMMARY_KIND: "vercel-eve-agent-summary";
/**
 * Current public schema version. Bump only when adding required fields or
 * making semantic changes consumers must opt into. Adding optional fields
 * does not require a version bump.
 */
export declare const VERCEL_EVE_AGENT_SUMMARY_VERSION = 3;
/**
 * Output path (relative to the agent's `appRoot`) where Eve writes the
 * summary file at build time.
 *
 * Lives under `.eve/` — the existing Eve-internal cache namespace that
 * already holds `nitro/`, `nitro-output/`, `sandbox-cache/`, etc. (see
 * `packages/eve/src/internal/application/paths.ts`). Intentionally
 * outside `.vercel/output/` so the file is not part of the Build Output
 * API surface — the Vercel build container picks it up from this path
 * and uploads it to a top-level deployment artifact, matching how the
 * Turbo run summary works.
 */
export declare const VERCEL_EVE_AGENT_SUMMARY_OUTPUT_PATH = ".eve/agent-summary.json";
/**
 * Display category Eve exposes to the dashboard for one channel chip. Built
 * from the channel's reported {@link CompiledChannelDefinition.adapterKind}.
 */
export type VercelEveChannelType = "slack" | "http" | "webhook" | "unknown";
/**
 * Top-level agent identity used to label the dashboard card.
 */
export interface VercelEveAgentEntry {
    readonly name: string;
    readonly description?: string;
    readonly modelId: string;
}
/**
 * Authored agent instructions resolved at build time from the agent's
 * `instructions.md` or `instructions.{ts,cts,mts,js,cjs,mjs}` source.
 * Agents without authored instructions fall back to the framework default
 * and the summary's `instructions` field is `null`.
 *
 * The dashboard renders the markdown body verbatim, so the field carries
 * the full resolved content rather than a preview. For module-backed
 * sources the markdown is the result the module produced at build time,
 * not the module's source code.
 */
export interface VercelEveInstructionsEntry {
    /**
     * Logical path of the discovered instructions source, relative to the
     * agent root (eg. `instructions.md`).
     */
    readonly logicalPath: string;
    /**
     * How the instructions were authored. `markdown` is a literal markdown
     * file at the agent root; `module` is a TypeScript / JavaScript module
     * that produces the instructions at build time.
     */
    readonly sourceKind: "markdown" | "module";
    /** Resolved markdown body of the instructions. */
    readonly markdown: string;
}
export interface VercelEveScheduleEntry {
    readonly name: string;
    readonly cron: string;
    readonly logicalPath: string;
}
export interface VercelEveToolEntry {
    readonly name: string;
    readonly description: string;
    readonly logicalPath: string;
}
/**
 * Wire protocol the authored connection speaks, mirrored from the
 * compiled connection's `protocol` discriminator. `"mcp"` is a
 * {@link defineMcpClientConnection} server; `"openapi"` is a
 * {@link defineOpenAPIConnection} REST API. New primitives extend this
 * union when they ship.
 */
export type VercelEveConnectionType = "mcp" | "openapi";
export interface VercelEveConnectionEntry {
    readonly name: string;
    readonly description: string;
    readonly url: string;
    readonly logicalPath: string;
    readonly type: VercelEveConnectionType;
    /**
     * When the connection's auth is built by `connect()` from
     * `@vercel/connect/eve`, the connector identifier the author passed
     * (UID like `"oauth/mcp-linear-app"` or opaque `"scl_..."` form).
     * Dashboards use this to deep-link into the connector's settings page
     * — typically resolving UID → `scl_...` against
     * `GET /v6/connect/connectors` and building
     * `/[teamSlug]/[project]/connect/<scl_...>`.
     *
     * Omitted for connections backed by a raw MCP server, a static
     * token, or a custom `getToken` callback (anything not produced by
     * the Vercel Connect helper).
     */
    readonly vercelConnect?: {
        readonly connector: string;
    };
}
export interface VercelEveChannelEntry {
    readonly name: string;
    readonly method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE" | "WEBSOCKET";
    readonly urlPath: string;
    readonly type: VercelEveChannelType;
    /**
     * The raw `ChannelAdapter.kind` reported by the route, when present.
     * Useful when `type` is `"unknown"` and a consumer wants to render a
     * disambiguating label.
     */
    readonly adapterKind?: string;
    readonly logicalPath: string;
}
export interface VercelEveSandboxEntry {
    readonly logicalPath: string;
}
/**
 * One authored skill exposed to the dashboard.
 *
 * Skills are markdown procedures the model loads on demand through the
 * framework-owned `load_skill` tool. The summary lists the available
 * skills by `name` + `description` so the dashboard can render the
 * surface without pulling each skill's full markdown body. Consumers
 * that need the full content can drill in through a dedicated endpoint
 * later — this entry is intentionally an overview shape.
 *
 * `sourceKind` distinguishes flat markdown skills (`agent/skills/foo.md`),
 * module-backed skills (`agent/skills/foo.ts`), and packaged skills
 * (`agent/skills/foo/SKILL.md` with sibling `references/`, `assets/`,
 * `scripts/` directories).
 */
export interface VercelEveSkillEntry {
    readonly name: string;
    readonly description: string;
    readonly logicalPath: string;
    readonly sourceKind: "markdown" | "module" | "skill-package";
}
export interface VercelEveSubagentEntry {
    readonly name: string;
    readonly description: string;
    readonly logicalPath: string;
}
export interface VercelEveDiagnosticsSummary {
    readonly errors: number;
    readonly warnings: number;
}
/**
 * Versioned public summary of one Eve agent, emitted into the Vercel Build
 * Output during `eve build` and ingested by Vercel as deployment metadata.
 */
export interface VercelEveAgentSummary {
    readonly kind: typeof VERCEL_EVE_AGENT_SUMMARY_KIND;
    readonly schemaVersion: typeof VERCEL_EVE_AGENT_SUMMARY_VERSION;
    /**
     * Version of the `eve` package that produced this summary,
     * for diagnostics. Format follows semver.
     */
    readonly generatorVersion: string;
    readonly agent: VercelEveAgentEntry;
    /**
     * Authored agent instructions, when declared. `null` when the agent
     * relies on the framework default.
     */
    readonly instructions: VercelEveInstructionsEntry | null;
    readonly schedules: readonly VercelEveScheduleEntry[];
    readonly tools: readonly VercelEveToolEntry[];
    readonly skills: readonly VercelEveSkillEntry[];
    readonly connections: readonly VercelEveConnectionEntry[];
    readonly channels: readonly VercelEveChannelEntry[];
    readonly sandbox: VercelEveSandboxEntry | null;
    readonly subagents: readonly VercelEveSubagentEntry[];
    readonly diagnostics: VercelEveDiagnosticsSummary;
}
/**
 * Normalizes a channel adapter's reported `kind` string to the closed set
 * the dashboard renders. Keeps the surface stable even when authors set a
 * custom `kind` on their adapter (eg. `"weather-slack"`).
 */
export declare function normalizeChannelKindForDisplay(adapterKind: string | undefined): VercelEveChannelType;
