/**
 * Task-local subagent definition shape.
 * Deliberately distinct from the CLI's `app/agent-definition.ts` —
 * embedded host tools must not import from the app entrypoint.
 */
import type { AgentThinkingLevel } from '../../../contracts/agent-settings.js';
import type { ShortcutXLAgentModelId } from '../../model-registry.js';
import type { ShortcutXLPromptPlatform } from '../../prompt/build.js';
export declare const DEFAULT_TASK_SUBAGENT_TIMEOUT_SECONDS: number;
/**
 * Context passed to subagent prompt builders. The platform handle is
 * the same one the parent session uses to build its system prompt — the
 * task runner just forwards it. `spreadsheetReadOnly` mirrors the value
 * on `AgentDefinition` so a subagent's prompt builder can pick the
 * matching API filter (ask vs action) without duplicating the flag.
 */
export interface SubagentPromptContext {
    readonly platform: ShortcutXLPromptPlatform;
    readonly spreadsheetReadOnly: boolean;
    readonly disabledToolNames?: readonly string[];
}
/**
 * System prompt for a subagent. Either a static string (for subagents
 * whose prompt does not depend on platform — e.g. `document_reader`) or
 * a builder that takes the prompt context. Builders are called once at
 * the start of each subagent run.
 */
export type SubagentSystemPrompt = string | ((ctx: SubagentPromptContext) => string);
export interface SubagentDescriptionContext {
    readonly disabledToolNames?: readonly string[];
}
export interface AgentDefinition {
    /** Unique `subagent_type` value emitted by the LLM. */
    readonly name: string;
    /** Description shown to the parent LLM in the `task` tool schema. */
    readonly description: string;
    /** Optional dynamic description for policy-aware parent-facing task catalogs. */
    readonly buildDescription?: (ctx: SubagentDescriptionContext) => string;
    /** System prompt the subagent runs against. May be a builder when the
     *  prompt depends on the runtime platform (e.g. for the API reference). */
    readonly systemPrompt: SubagentSystemPrompt;
    /** Wire names of allowed tools — must be a subset of the runtime registry. */
    readonly tools: readonly string[];
    /** Model id resolved via the runtime's model registry. */
    readonly model: ShortcutXLAgentModelId;
    readonly thinkingLevel: AgentThinkingLevel;
    readonly timeoutSeconds: number;
    /**
     * When true, the subagent's `execute_code` tool is pinned to the
     * read-only API surface and writes are blocked at the tool boundary —
     * regardless of the parent session's mode. Workbook-reader and verification
     * rely on this boundary to stay read-only relative to the live workbook.
     * Omit (or set false) to inherit the parent session's surface.
     */
    readonly spreadsheetReadOnly?: boolean;
    /** Subagent types this agent may launch through nested task calls. */
    readonly allowedSubagents?: readonly string[];
}
//# sourceMappingURL=agent-definition.d.ts.map