export type RuntimeExecEngineBindingKind = "coreLogic" | "ioTransceiver" | "eventExposurePlane" | "basicToolLayer";
export type RuntimeExecEngineBindingBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type RuntimeExecEngineBindingErrorCode = "MISSING_RUNTIME_ID" | "MISSING_BINDING_KIND" | "MISSING_BINDING_ID" | "RUNTIME_NOT_READY" | "MODULE_NOT_MOUNTED" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type RuntimeExecEngineBindingGate = {
    accepted: boolean;
    reason?: string;
};
export type RuntimeExecEngineBindingCaller = {
    kind: "application" | "official-module" | "runtime-surface" | "inspection" | "debug";
    id: string;
};
export type RuntimeExecEngineMountedModule = {
    id: string;
    ready?: boolean;
    version?: string;
};
export type RuntimeExecEngineBindingTrace = {
    correlationId?: string;
    sessionId?: string;
};
export type RuntimeExecEngineBindingRequest = {
    runtimeId?: string;
    bindingKind?: RuntimeExecEngineBindingKind;
    bindingId?: string;
    caller?: RuntimeExecEngineBindingCaller;
    runtimeReady?: boolean;
    moduleMounted?: boolean;
    mountedModule?: RuntimeExecEngineMountedModule;
    capabilities?: readonly string[];
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    contract?: RuntimeExecEngineBindingGate;
    governance?: RuntimeExecEngineBindingGate;
    trace?: RuntimeExecEngineBindingTrace;
};
export type RuntimeExecEngineBindingSnapshot = {
    runtimeId: string;
    bindingKind: RuntimeExecEngineBindingKind;
    bindingId: string;
    surface: "runtime.execEngine";
    lifecycle: "bound";
    caller?: RuntimeExecEngineBindingCaller;
    mountedModule?: RuntimeExecEngineMountedModule;
    capabilities: readonly string[];
    requestedScopes: readonly string[];
    grantedScopes: readonly string[];
    deniedScopes: readonly string[];
    trace: RuntimeExecEngineBindingTrace;
    governanceRequired: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type RuntimeExecEngineBindingError = {
    code: RuntimeExecEngineBindingErrorCode;
    message: string;
    boundary: RuntimeExecEngineBindingBoundary;
    bindingSafe: true;
};
export type RuntimeExecEngineBindingResult = {
    ok: true;
    binding: RuntimeExecEngineBindingSnapshot;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeExecEngineBindingError;
    events: readonly string[];
};
export type RuntimeExecEngineBindingDefaults = {
    bindingKind: RuntimeExecEngineBindingKind;
    bindingId: string;
    capabilities: readonly string[];
    eventNamePrefix: string;
};
export type BindCoreLogicRequest = Omit<RuntimeExecEngineBindingRequest, "bindingKind">;
export type BindCoreLogicResult = RuntimeExecEngineBindingResult;
export declare const DEFAULT_CORE_LOGIC_BINDING_CAPABILITIES: readonly ["mainLoop", "mainLoopStepRecord", "mainLoopHandoffPlan", "stateEngine", "modelDecision", "ephemeralProcedure", "observationIntegrator", "approvalWaitResume", "eventSessionRecord", "reuseInvoker"];
export declare function createRuntimeExecEngineBinding(request: RuntimeExecEngineBindingRequest | undefined, defaults: RuntimeExecEngineBindingDefaults): RuntimeExecEngineBindingResult;
export declare function bindCoreLogic(request?: BindCoreLogicRequest): BindCoreLogicResult;
