import type { DispatchOutcome, RuntimeSession } from "#subagents/handle-dispatch.js";
import { resolveRemoteAgentForAction, startRemoteAgentSession } from "#subagents/remote-dispatch.js";
import type { RuntimeRemoteAgentDispatchRequest } from "#shared/action-types.js";
import type { CompiledBundle } from "#runtime/sessions/runtime-context-keys.js";
import type { SubagentParentContext } from "#subagents/invocation.js";
/** Starts one remote subagent after dispatch planning has selected its target. */
export declare function startRemoteSubagent(input: {
    readonly action: RuntimeRemoteAgentDispatchRequest;
    readonly auth: Parameters<typeof startRemoteAgentSession>[0]["auth"];
    readonly bundle: CompiledBundle;
    readonly callbackBaseUrl: string | undefined;
    readonly currentSession: RuntimeSession;
    readonly dynamicRemoteAgent?: NonNullable<Parameters<typeof resolveRemoteAgentForAction>[0]["dynamicRemoteAgent"]>;
    readonly initiatorAuth: Parameters<typeof startRemoteAgentSession>[0]["initiatorAuth"];
    readonly parent: SubagentParentContext;
    readonly activityObserver?: Parameters<typeof startRemoteAgentSession>[0]["activityObserver"];
    /** Already resolved task-owned work; do not derive another child identity. */
    readonly taskActivityObserver?: Parameters<typeof startRemoteAgentSession>[0]["activityObserver"];
    readonly session: RuntimeSession;
    readonly taskId?: string;
}): Promise<DispatchOutcome>;
