import { z } from 'zod';
import type { AgentEvent } from '..';
import type { Agent } from '../agent';
/** Base input fields shared by all subagent invocations. */
export declare const subagentInputBase: z.ZodObject<{
    description: z.ZodString;
    prompt: z.ZodString;
    subagent_type: z.ZodString;
}, z.core.$strip>;
/** Extended input that includes task_id for resumable agents. */
export declare const subagentInputResumable: z.ZodObject<{
    description: z.ZodString;
    prompt: z.ZodString;
    subagent_type: z.ZodString;
    task_id: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type SubagentInputBase = z.infer<typeof subagentInputBase>;
export type SubagentInputResumable = z.infer<typeof subagentInputResumable>;
export type SubagentInput = SubagentInputBase | SubagentInputResumable;
interface BaseSubAgentConfig {
    name: string;
    description: string;
    agent: Agent;
}
export interface ResumableSubAgentConfig extends BaseSubAgentConfig {
    resumable: true;
}
export interface EphemeralSubAgentConfig extends BaseSubAgentConfig {
    resumable?: false;
}
export type SubAgentConfig = ResumableSubAgentConfig | EphemeralSubAgentConfig;
export declare function createSubagentsTool(opts: {
    agents: SubAgentConfig[];
    onChildEvent?: (event: AgentEvent) => void;
}): import("..").Tool<{
    description: string;
    prompt: string;
    subagent_type: string;
    task_id?: string | undefined;
}, string | import("..").SubAgentPauseResult>;
export {};
//# sourceMappingURL=subagent.d.ts.map