export type OmniInvocationBoundary = "input" | "contract" | "governance" | "scope" | "runtime-state";
export type OmniInvocationSource = "mainLoop" | "stateEngine" | "basicToolLayer" | "officialModuleBridge" | "runtime";
export type OmniInvocationModality = "text" | "image" | "audio" | "video" | "mixed";
export type OmniInvocationGate = {
    accepted: boolean;
    reason?: string;
};
export type OmniInvocationTrace = {
    correlationId?: string;
    callerId?: string;
};
export type OmniInvocationRequest = {
    runtimeId?: string;
    sessionId?: string;
    invocationId?: string;
    source?: OmniInvocationSource;
    modality?: OmniInvocationModality;
    targetId?: string;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    runtimeReady?: boolean;
    contract?: OmniInvocationGate;
    governance?: OmniInvocationGate;
    trace?: OmniInvocationTrace;
    emittedAt?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type OmniInvocationErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_INVOCATION_ID" | "MISSING_EVENT_SOURCE" | "MISSING_OMNI_TARGET" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type OmniInvocationError = {
    code: OmniInvocationErrorCode;
    message: string;
    boundary: OmniInvocationBoundary;
    safeForRuntimeInspection: true;
};
export type OmniInvocationEvent = {
    eventId: string;
    kind: "basicToolInvocation.omni";
    runtimeId: string;
    sessionId: string;
    invocationId: string;
    source: OmniInvocationSource;
    omni: {
        modality: OmniInvocationModality;
        targetId: string;
    };
    requestedScopes: readonly string[];
    grantedScopes: readonly string[];
    trace: OmniInvocationTrace;
    emittedAt: string;
    route: "runtime.execEngine.eventExposurePlane";
    dispatch: "dry-run";
    unsafeSideEffects: false;
    metadata: Readonly<Record<string, unknown>>;
};
export type OmniInvocationResult = {
    ok: true;
    event: OmniInvocationEvent;
    events: readonly string[];
} | {
    ok: false;
    error: OmniInvocationError;
    events: readonly string[];
};
export declare const omniInvocationDescriptor: {
    readonly kind: "basicToolInvocation.omni";
    readonly route: "runtime.execEngine.eventExposurePlane";
    readonly purpose: "expose multimodal basic tool invocation events without processing media";
    readonly dispatch: "dry-run";
    readonly unsafeSideEffects: false;
};
export declare function exposeOmniInvocationEvent(request?: OmniInvocationRequest): OmniInvocationResult;
