import type { CliContainer } from "../cli/container.js";
import type { SpawnResult } from "./types.js";
import type { McpSpawnConfig, SpawnMode } from "../../packages/agent-spawn/dist/index.js";
import type { HookBridgeOptions } from "./types.js";
export interface SpawnCoreOptions {
    /** The prompt to send to the provider */
    prompt: string;
    /** Working directory or workspace locator for the service CLI */
    cwd?: string;
    /** Model identifier override */
    model?: string;
    /** Permission mode: yolo | auto | edit | read */
    mode?: SpawnMode;
    /** Additional arguments forwarded to the CLI */
    args?: string[];
    /** Environment overrides applied only to this spawned run. */
    env?: Record<string, string | undefined>;
    /** MCP servers passed at spawn time */
    mcpServers?: McpSpawnConfig;
    /** Skill references to bridge into the spawned agent for this run. */
    skills?: string[];
    /** Hooks to bridge from another agent configuration for this run. */
    hooks?: HookBridgeOptions;
    /** Resume a prior provider thread/session before sending the prompt. */
    resumeThreadId?: string;
    /** Whether prompt was read from stdin */
    useStdin?: boolean;
}
export interface SpawnCoreFlags {
    dryRun: boolean;
    verbose: boolean;
}
/**
 * Core spawn implementation used by both SDK and CLI.
 * Accepts an existing container to avoid creating a new one.
 */
export declare function spawnCore(container: CliContainer, service: string, options: SpawnCoreOptions, flags?: SpawnCoreFlags): Promise<SpawnResult>;
export declare function resolveConfiguredModel(container: Pick<CliContainer, "env" | "fs" | "registry">, service: string, model?: string, options?: {
    readOnly?: boolean;
}): Promise<string | undefined>;
