export type KillSubAgentEventBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type KillSubAgentEventGate = {
    accepted: boolean;
    reason?: string;
};
export type KillSubAgentEventRequest = {
    runtimeId?: string;
    sessionId?: string;
    parentAgentId?: string;
    subAgentId?: string;
    invocationId?: string;
    eventSource?: "mainLoop" | "stateEngine" | "runtime.execEngine" | "multiagentInterface";
    killReason?: string;
    terminationPolicy?: "graceful" | "force" | "timeout";
    governanceContext?: readonly string[];
    requestedSubscribers?: readonly string[];
    allowedSubscribers?: readonly string[];
    runtimeReady?: boolean;
    contract?: KillSubAgentEventGate;
    governance?: KillSubAgentEventGate;
};
export type KillSubAgentEventErrorCode = "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 KillSubAgentEventError = {
    code: KillSubAgentEventErrorCode;
    message: string;
    boundary: KillSubAgentEventBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type KillSubAgentEventRecord = {
    type: "multiAgent.subAgent.kill.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: "kill";
        killReason?: string;
        terminationPolicy: "graceful" | "force" | "timeout";
        governanceContext: readonly string[];
    };
    contractSurface: "runtime.contractSurface";
    governanceRequired: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type KillSubAgentDispatchRecord = {
    mode: "dry-run";
    requestedSubscribers: readonly string[];
    deliverableSubscribers: readonly string[];
    actualTerminationStarted: false;
};
export type KillSubAgentEventResult = {
    ok: true;
    event: KillSubAgentEventRecord;
    dispatch: KillSubAgentDispatchRecord;
    events: readonly string[];
} | {
    ok: false;
    error: KillSubAgentEventError;
    events: readonly string[];
};
export declare const killSubAgentEventDescriptor: {
    readonly type: "multiAgent.subAgent.kill.requested";
    readonly route: "agent_executionEngine.coreLogic.eventExposurePlane.multiAgentInvocation";
    readonly purpose: "expose a dry-run sub-agent termination invocation event without killing a child agent";
    readonly unsafeSideEffects: false;
};
export declare function exposeKillSubAgentEvent(request?: KillSubAgentEventRequest): KillSubAgentEventResult;
