import type { AgentProfile } from '@tangle-network/agent-interface';
import { type MultishotPersona, type MultishotResult, type MultishotShape, type MultishotToolDefinition, type MultishotToolExecutor } from './types';
export interface RunMultishotOptions<TPersona extends MultishotPersona> {
    profile: AgentProfile;
    persona: TPersona;
    shape: MultishotShape<TPersona>;
    /** Tool definitions advertised to the agent. Defaults to delegate_research + delegate_code. */
    tools?: MultishotToolDefinition[];
    /** Map from tool name → executor invoked inline when the agent emits a tool_call. */
    toolExecutors?: Record<string, MultishotToolExecutor>;
    /** Map from tool name → artifact type label written into MultishotArtifact.type.
     *  Tools without a mapping still execute, but their results aren't surfaced as
     *  typed artifacts (only as tool messages in the transcript). */
    artifactTypeFor?: (toolName: string) => string | undefined;
    maxTurns?: number;
    agentModel?: string;
    driverModel?: string;
    apiKey?: string;
    baseUrl?: string;
    signal?: AbortSignal;
}
export declare function runMultishot<TPersona extends MultishotPersona>(opts: RunMultishotOptions<TPersona>): Promise<MultishotResult>;
//# sourceMappingURL=multishot.d.ts.map