/**
 * ConnectorClient — high-level wrapper using UniFFI bindings via koffi.
 *
 * Handles the full round-trip for any payment flow:
 *   1. Serialize protobuf request to bytes
 *   2. Build connector HTTP request via UniffiClient.callReq (generic FFI dispatch)
 *   3. Execute the HTTP request via our standardized HttpClient
 *   4. Parse the connector response via UniffiClient.callRes (generic FFI dispatch)
 *   5. Deserialize protobuf response from bytes
 *
 * Flow methods (authorize, capture, void, refund, …) are in _generated_connector_client_flows.ts.
 * To add a new flow: edit sdk/flows.yaml and run `make codegen`.
 */
import { types } from "./generated/proto";
export { IntegrationError, ConnectorError } from "./errors";
export declare class ConnectorClient {
    private uniffi;
    private config;
    private defaults;
    private baseHttpConfig;
    private dispatcherCache;
    /**
     * Initialize the client with mandatory config and optional request defaults.
     *
     * @param config - Immutable connector config and environment (ConnectorSpecificConfig, SdkOptions).
     * @param defaults - Optional per-request defaults (Http, Vault).
     * @param libPath - optional path to the UniFFI shared library.
     */
    constructor(config: types.IConnectorConfig, defaults?: types.IRequestConfig, libPath?: string);
    /**
     * Merges request-level options with client defaults. Environment comes from config (immutable).
     */
    private _resolveConfig;
    /**
     * Get or create a cached dispatcher based on the effective proxy configuration.
     */
    private _getOrCreateDispatcher;
    /**
     * Execute a full round-trip for any registered payment flow.
     *
     * @param flow - Flow name matching the FFI transformer prefix (e.g. "authorize").
     * @param requestMsg - Protobuf request message object.
     * @param options - Optional ConfigOptions override (Environment, Http).
     */
    _executeFlow(flow: string, requestMsg: object, options?: types.IRequestConfig | null, reqTypeName?: string, resTypeName?: string): Promise<unknown>;
    /**
     * Execute a single-step flow directly via FFI (no HTTP round-trip).
     * Used for inbound flows like webhook processing where the connector sends data to us.
     */
    _executeDirect(flow: string, requestMsg: object, options?: types.IRequestConfig | null, reqTypeName?: string, resTypeName?: string): Promise<unknown>;
}
