import { type InvocationEnvelope, type InvocationEnvelopeError, type InvocationEnvelopeGate, type InvocationEnvelopeSource, type InvocationEnvelopeTrace } from "./invocationEnvelope.js";
export type InterfaceInvocationEntrypointRequest = {
    runtimeId: string;
    interfaceId: string;
    source: InvocationEnvelopeSource;
    operation?: string;
    input?: unknown;
    runtimeReady?: boolean;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    contract?: InvocationEnvelopeGate;
    governance?: InvocationEnvelopeGate;
    trace?: InvocationEnvelopeTrace;
};
export type InterfaceInvocationPlan = {
    invocationType: "interface";
    runtimeId: string;
    interfaceId: string;
    operation?: string;
    envelope: InvocationEnvelope;
    dispatch: "dry-run";
    touchesInterfaceAdapter: false;
};
export type InterfaceInvocationEntrypointResult = {
    ok: true;
    plan: InterfaceInvocationPlan;
    events: readonly string[];
} | {
    ok: false;
    error: InvocationEnvelopeError;
    events: readonly string[];
};
export declare function createInterfaceInvocationEntrypoint(request: InterfaceInvocationEntrypointRequest): InterfaceInvocationEntrypointResult;
