/** * Actionable errors for private service-to-service bindings. */ export declare class ServiceBindingError extends Error { readonly code: string; readonly details: Record; constructor(message: string, code: string, details?: Record); } /** * Thrown when a caller attempts to invoke a target service without an explicitly authorized binding. */ export declare class UnboundCallerError extends ServiceBindingError { readonly caller: string; readonly bindingName: string; readonly target: string; constructor(caller: string, bindingName: string, target: string, extraMessage?: string); } /** * Thrown when a caller references a named binding dependency that is not configured in the environment. */ export declare class MissingBindingError extends ServiceBindingError { readonly caller: string; readonly bindingName: string; constructor(caller: string, bindingName: string); } /** * Thrown when the target service of a binding is registered/configured but currently unavailable or not running. */ export declare class TargetUnavailableError extends ServiceBindingError { readonly caller: string; readonly bindingName: string; readonly target: string; constructor(caller: string, bindingName: string, target: string, reason?: string); } /** * Thrown when the target service does not satisfy the caller's contract (e.g. missing operation). */ export declare class IncompatibleContractError extends ServiceBindingError { readonly caller: string; readonly bindingName: string; readonly target: string; readonly operation?: string; readonly availableOperations: readonly string[]; constructor(caller: string, bindingName: string, target: string, operation: string | undefined, availableOperations: readonly string[], missingOperations?: readonly string[]); } /** * Thrown when a caller is authorized for a target service, but restricted from calling a specific operation. */ export declare class UnauthorizedOperationError extends ServiceBindingError { readonly caller: string; readonly bindingName: string; readonly target: string; readonly operation: string; readonly allowedOperations: readonly string[]; constructor(caller: string, bindingName: string, target: string, operation: string, allowedOperations: readonly string[]); }