import { ConfigOptions, FspiopPutPartiesSource, FspiopFacadeOptions, IsoTarget, FspiopPutPartiesErrorSource, FspiopSource, FspiopPutQuotesSource, FspiopPostTransfersSource, IsoSource, IsoFacadeOptions, FspiopPutPartiesTarget, FspiopPutPartiesErrorTarget, FspiopTarget, FspiopPutQuotesTarget } from './types/index.js';
export { createTransformer } from './lib/createTransformer.js';
import '@mojaloop/central-services-logger/src/contextLogger';
import './types/map-transform.js';

declare const TransformFacades: {
    FSPIOP: {
        configure: (config: ConfigOptions) => void;
        parties: {
            put: (source: FspiopPutPartiesSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            putError: (source: FspiopPutPartiesErrorSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
        };
        quotes: {
            post: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            put: (source: FspiopPutQuotesSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            putError: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
        };
        transfers: {
            post: (source: FspiopPostTransfersSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            patch: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            put: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            putError: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
        };
        fxQuotes: {
            post: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            put: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            putError: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
        };
        fxTransfers: {
            post: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            patch: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            put: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
            putError: (source: FspiopSource, options?: FspiopFacadeOptions) => Promise<IsoTarget>;
        };
    };
    FSPIOPISO20022: {
        configure: (config: ConfigOptions) => void;
        parties: {
            put: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopPutPartiesTarget>;
            putError: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopPutPartiesErrorTarget>;
        };
        quotes: {
            post: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            put: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopPutQuotesTarget>;
            putError: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
        };
        transfers: {
            post: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            patch: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            put: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            putError: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
        };
        fxQuotes: {
            post: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            put: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            putError: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
        };
        fxTransfers: {
            post: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            patch: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            put: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
            putError: (source: IsoSource, options?: IsoFacadeOptions) => Promise<FspiopTarget>;
        };
    };
};

export { TransformFacades };
