export type CmpInvocationBoundary = "input" | "contract" | "governance" | "scope" | "runtime-state";
export type CmpInvocationSource = "mainLoop" | "stateEngine" | "officialModuleBridge" | "runtime.execEngine" | "runtime.officialModuleSurface";
export type CmpInvocationGate = {
    accepted: boolean;
    reason?: string;
};
export type CmpInvocationTrace = {
    correlationId?: string;
    callerId?: string;
};
export type CmpInvocationRequest = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    source?: CmpInvocationSource;
    operation?: string;
    callContext?: Readonly<Record<string, unknown>>;
    governanceContext?: readonly string[];
    requestedSubscribers?: readonly string[];
    allowedSubscribers?: readonly string[];
    runtimeReady?: boolean;
    contract?: CmpInvocationGate;
    governance?: CmpInvocationGate;
    trace?: CmpInvocationTrace;
    emittedAt?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type CmpInvocationErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_INVOCATION_ID" | "MISSING_EVENT_SOURCE" | "MISSING_OPERATION" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SUBSCRIBER_SCOPE_DENIED";
export type CmpInvocationError = {
    code: CmpInvocationErrorCode;
    message: string;
    boundary: CmpInvocationBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type CmpInvocationEvent = {
    type: "officialPoolInvocation.cmp.requested";
    runtimeId: string;
    sessionId: string;
    invocationId: string;
    route: "agent_executionEngine.coreLogic.eventExposurePlane.officialPoolInvocation";
    source: CmpInvocationSource;
    officialModule: {
        name: "CMP";
        operation: string;
        resultEnvelope: "not-executed";
    };
    payload: {
        callContextKeys: readonly string[];
        governanceContext: readonly string[];
    };
    trace: CmpInvocationTrace;
    emittedAt: string;
    contractSurface: "runtime.contractSurface";
    governanceRequired: true;
    dryRun: true;
    unsafeSideEffects: false;
    metadata: Readonly<Record<string, unknown>>;
};
export type CmpInvocationDispatch = {
    mode: "dry-run";
    requestedSubscribers: readonly string[];
    deliverableSubscribers: readonly string[];
    actualModuleCallStarted: false;
};
export type CmpInvocationResult = {
    ok: true;
    event: CmpInvocationEvent;
    dispatch: CmpInvocationDispatch;
    events: readonly string[];
} | {
    ok: false;
    error: CmpInvocationError;
    events: readonly string[];
};
export declare const cmpInvocationDescriptor: {
    readonly type: "officialPoolInvocation.cmp.requested";
    readonly route: "agent_executionEngine.coreLogic.eventExposurePlane.officialPoolInvocation";
    readonly purpose: "expose CMP official module invocation events without executing CMP behavior";
    readonly dispatch: "dry-run";
    readonly unsafeSideEffects: false;
};
export declare function exposeCmpInvocationEvent(request?: CmpInvocationRequest): CmpInvocationResult;
