import type { ConnectionConfig, ConnectionsConfig } from './connections/Connection.js';
import type { ProviderBindingsConfig } from './ProviderBinding.js';
/** Config slice needed to resolve a provider moniker to its bound connection. */
export interface ConnectionBindingFields {
    connections?: ConnectionsConfig;
    providerBindings?: ProviderBindingsConfig;
}
/** A named connection profile resolved for a provider moniker. */
export interface ConnectionBinding {
    config: ConnectionConfig;
    name: string;
}
/** Options for `requireConnectionBindingForMoniker`. */
export interface RequireConnectionBindingOptions {
    /** Allowed connection kinds — usually the provider class's `connectionTypes` static. */
    types?: readonly string[];
}
/** Resolve the connection name bound to a moniker via `providerBindings`. */
export declare function connectionNameForMoniker(config: ConnectionBindingFields, moniker: string): string | undefined;
/**
 * Resolve the first bound connection for the supplied monikers (checked in order).
 * A binding that names an undeclared connection profile is a configuration error and throws;
 * a moniker with no binding at all returns undefined so callers can fall back.
 */
export declare function connectionBindingForMoniker(config: ConnectionBindingFields, moniker: string | readonly string[]): ConnectionBinding | undefined;
/**
 * Resolve the bound connection for the supplied monikers or throw. Pass the provider
 * class's `connectionTypes` as `types` to reject bindings to an unsupported substrate.
 */
export declare function requireConnectionBindingForMoniker(config: ConnectionBindingFields, moniker: string | readonly string[], options?: RequireConnectionBindingOptions): ConnectionBinding;
//# sourceMappingURL=connectionBindings.d.ts.map