import type { ModelAdapterRuntimeCaller, ModelAdapterRuntimeGate } from "./modelAdapterRuntime.js";
import type { ProviderCachePolicy, ProviderReasoningConfig } from "../../agent_modelAdapter/providerAccessLayer/providerCarrier.js";
import type { CredentialRef } from "../../agent_modelAdapter/authProfileLayer/credentialRef.js";
export type ProviderCarrierKind = "openai" | "anthropic" | "deepmind" | "customFormat" | (string & {});
export type ProviderCarrierEndpointShape = "responses" | "messages" | "completion" | "embedding" | "image" | "audio" | "realtime" | "video" | "files" | "vector-store" | "skills" | "custom" | (string & {});
export type ProviderCarrierRegistryBoundary = "input" | "contract" | "governance" | "runtime-state" | "registry" | "scope";
export type ProviderCarrierRegistryErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_CARRIERS" | "MISSING_CARRIER_ID" | "MISSING_PROVIDER" | "DUPLICATE_CARRIER_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type ProviderCarrierRegistryError = {
    code: ProviderCarrierRegistryErrorCode;
    message: string;
    boundary: ProviderCarrierRegistryBoundary;
    publicSafe: true;
};
export type ProviderCarrierInput = {
    carrierId?: string;
    provider?: ProviderCarrierKind;
    endpointShape?: ProviderCarrierEndpointShape;
    baseURL?: string;
    model?: string;
    reasoning?: ProviderReasoningConfig;
    credentialRef?: CredentialRef;
    cachePolicy?: ProviderCachePolicy;
    capabilities?: readonly string[];
    scopes?: readonly string[];
    metadata?: Readonly<Record<string, unknown>>;
};
export type ProviderCarrierRegistryRequest = {
    runtimeId?: string;
    caller?: ModelAdapterRuntimeCaller;
    carriers?: readonly ProviderCarrierInput[];
    runtimeReady?: boolean;
    allowedScopes?: readonly string[];
    contract?: ModelAdapterRuntimeGate;
    governance?: ModelAdapterRuntimeGate;
};
export type RegisteredProviderCarrier = {
    carrierId: string;
    provider: ProviderCarrierKind;
    endpointShape?: ProviderCarrierEndpointShape;
    baseURL?: string;
    model?: string;
    reasoning?: ProviderReasoningConfig;
    credentialRef?: CredentialRef;
    cachePolicy: ProviderCachePolicy;
    capabilities: readonly string[];
    scopes: readonly string[];
    metadata: Readonly<Record<string, unknown>>;
    status: "registered";
};
export type ProviderCarrierRegistry = {
    registryId: string;
    runtimeId: string;
    caller: ModelAdapterRuntimeCaller;
    route: "runtime.modelAdapter.providerCarrierRegistry";
    carriers: readonly RegisteredProviderCarrier[];
    carrierIds: readonly string[];
    providers: readonly ProviderCarrierKind[];
    capabilities: readonly string[];
    grantedScopes: readonly string[];
    contractChecked: true;
    governanceChecked: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type ProviderCarrierRegistryResult = {
    ok: true;
    registry: ProviderCarrierRegistry;
    events: readonly string[];
} | {
    ok: false;
    error: ProviderCarrierRegistryError;
    events: readonly string[];
};
export declare function registerProviderCarriers(request?: ProviderCarrierRegistryRequest): ProviderCarrierRegistryResult;
