import type { AgentApplicationRuntimeSurface } from "./agentApplicationRuntime.js";
export type AgentRuntimeClientOperation = "invoke" | "stream" | "inspect" | "subscribe" | "control";
export type AgentRuntimeClientErrorCode = "MISSING_RUNTIME_SURFACE" | "UNSUPPORTED_OPERATION" | "GOVERNANCE_REJECTED";
export type AgentRuntimeClientError = {
    code: AgentRuntimeClientErrorCode;
    message: string;
    boundary: "input" | "governance";
};
export type AgentRuntimeClientGate = {
    accepted: boolean;
    reason?: string;
};
export type AgentRuntimeClientRequest = {
    surface?: AgentApplicationRuntimeSurface;
    enabledOperations?: readonly AgentRuntimeClientOperation[];
    governance?: AgentRuntimeClientGate;
};
export type AgentRuntimeClientCall = {
    operation: AgentRuntimeClientOperation;
    payload?: unknown;
};
export type AgentRuntimeClientCallResult = {
    ok: true;
    operation: AgentRuntimeClientOperation;
    runtimeId: string;
    applicationId: string;
    accepted: true;
    dryRun: true;
} | {
    ok: false;
    error: AgentRuntimeClientError;
};
export type AgentRuntimeClient = {
    runtimeId: string;
    applicationId: string;
    enabledOperations: readonly AgentRuntimeClientOperation[];
    call: (call: AgentRuntimeClientCall) => AgentRuntimeClientCallResult;
};
export type AgentRuntimeClientResult = {
    ok: true;
    client: AgentRuntimeClient;
    events: readonly string[];
} | {
    ok: false;
    error: AgentRuntimeClientError;
    events: readonly string[];
};
export declare function createAgentRuntimeClient(request: AgentRuntimeClientRequest): AgentRuntimeClientResult;
