export type LaunchSubAgentEventBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type LaunchSubAgentEventGate = {
    accepted: boolean;
    reason?: string;
};
export type LaunchSubAgentEventRequest = {
    runtimeId?: string;
    sessionId?: string;
    parentAgentId?: string;
    subAgentId?: string;
    invocationId?: string;
    eventSource?: "mainLoop" | "stateEngine" | "runtime.execEngine" | "multiagentInterface";
    launchReason?: string;
    callContext?: Readonly<Record<string, unknown>>;
    governanceContext?: readonly string[];
    requestedSubscribers?: readonly string[];
    allowedSubscribers?: readonly string[];
    runtimeReady?: boolean;
    contract?: LaunchSubAgentEventGate;
    governance?: LaunchSubAgentEventGate;
};
export type LaunchSubAgentEventErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_PARENT_AGENT_ID" | "MISSING_SUB_AGENT_ID" | "MISSING_INVOCATION_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SUBSCRIBER_SCOPE_DENIED";
export type LaunchSubAgentEventError = {
    code: LaunchSubAgentEventErrorCode;
    message: string;
    boundary: LaunchSubAgentEventBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type LaunchSubAgentEventRecord = {
    type: "multiAgent.subAgent.launch.requested";
    runtimeId: string;
    sessionId: string;
    route: "agent_executionEngine.coreLogic.eventExposurePlane.multiAgentInvocation";
    source: "mainLoop" | "stateEngine" | "runtime.execEngine" | "multiagentInterface";
    subject: {
        parentAgentId: string;
        subAgentId: string;
        invocationId: string;
    };
    payload: {
        action: "launch";
        launchReason?: string;
        callContextKeys: readonly string[];
        governanceContext: readonly string[];
    };
    contractSurface: "runtime.contractSurface";
    governanceRequired: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type LaunchSubAgentDispatchRecord = {
    mode: "dry-run";
    requestedSubscribers: readonly string[];
    deliverableSubscribers: readonly string[];
    actualLaunchStarted: false;
};
export type LaunchSubAgentEventResult = {
    ok: true;
    event: LaunchSubAgentEventRecord;
    dispatch: LaunchSubAgentDispatchRecord;
    events: readonly string[];
} | {
    ok: false;
    error: LaunchSubAgentEventError;
    events: readonly string[];
};
export declare const launchSubAgentEventDescriptor: {
    readonly type: "multiAgent.subAgent.launch.requested";
    readonly route: "agent_executionEngine.coreLogic.eventExposurePlane.multiAgentInvocation";
    readonly purpose: "expose a dry-run sub-agent launch invocation event without starting a child agent";
    readonly unsafeSideEffects: false;
};
export declare function exposeLaunchSubAgentEvent(request?: LaunchSubAgentEventRequest): LaunchSubAgentEventResult;
