///
import type { OfferingsApi, ExchangesApi, CreateExchangeCallback, SubmitOrderCallback, SubmitCloseCallback, GetExchangesCallback, GetOfferingsCallback, GetBalancesCallback, GetExchangeCallback, BalancesApi } from './types.js';
import type { Express } from 'express';
/**
* Maps the requests to their respective callbacks handlers
* @beta
*/
type CallbackMap = {
getExchange?: GetExchangeCallback;
getExchanges?: GetExchangesCallback;
getOfferings?: GetOfferingsCallback;
getBalances?: GetBalancesCallback;
createExchange?: CreateExchangeCallback;
submitOrder?: SubmitOrderCallback;
submitClose?: SubmitCloseCallback;
};
/**
* Options for creating a new HttpServer
* @param opts.offeringsApi Optionally accepts an {@link OfferingsApi}. Defaults an in-memory implementation.
* @param opts.exchangesApi Optionally accepts an {@link ExchangesApi}. Defaults an in-memory implementation.
* @param opts.balancesApi Optionally accepts a {@link BalancesApi}. Else, leave `undefined` if not supporting the balances endpoint.
* @param opts.pfiDid Required if instantiating the HttpServer with options. Else, defaults to an arbitrary string for example purposes only.
* @beta
*/
type NewHttpServerOptions = {
offeringsApi?: OfferingsApi;
exchangesApi?: ExchangesApi;
balancesApi?: BalancesApi;
pfiDid: string;
};
/**
* TBDex HTTP Server powered by Express
* @beta
*/
export declare class TbdexHttpServer {
/**
* Map of callbacks handlers for the available requests
*/
callbacks: CallbackMap;
/**
* Express server instance
*/
api: Express;
/**
* PFI Exchanges API
*/
exchangesApi: ExchangesApi;
/**
* PFI Offerings API
*/
offeringsApi: OfferingsApi;
/**
* PFI Balances API
*/
balancesApi?: BalancesApi;
/**
* PFI DID
*/
pfiDid: string;
constructor(opts?: NewHttpServerOptions);
/**
* Set up a callback or overwrite the existing callback for the SubmitRfq endpoint
* @param callback - A callback to be invoked when a valid Rfq is sent to the
* CreateExchange endpoint.
*/
onCreateExchange(callback: CreateExchangeCallback): void;
/**
* Set up a callback or overwrite the existing callback for the for the SubmitMessage endpoint
* @param callback - A callback to be invoked when a valid Order is sent to the
* SubmitMessage endpoint.
*/
onSubmitOrder(callback: SubmitOrderCallback): void;
/**
* Set up a callback or overwrite the existing callback for the for the SubmitMessage endpoint
* @param callback - A callback to be invoked when a valid Close is sent to the
* SubmitMessage endpoint.
*/
onSubmitClose(callback: SubmitCloseCallback): void;
/**
* Set up a callback or overwrite the existing callback for the GetExchange endpoint
* @param callback - A callback to be invoked when a valid request is sent to the
* GetExchange endpoint.
*/
onGetExchange(callback: GetExchangeCallback): void;
/**
* Set up a callback or overwrite the existing callback for the GetExchanges endpoint
* @param callback - A callback to be invoked when a valid request is sent to the
* GetExchanges endpoint.
*/
onGetExchanges(callback: GetExchangesCallback): void;
/**
* Set up a callback or overwrite the existing callback for the GetOfferings endpoint
* @param callback - A callback to be invoked when a valid request is sent to the
* GetOfferings endpoint.
*/
onGetOfferings(callback: GetOfferingsCallback): void;
/**
* Set up a callback or overwrite the existing callback for the GetBalances endpoint
* @param callback - A callback to be invoked when a valid request is sent to the
* GetBalances endpoint.
*/
onGetBalances(callback: GetBalancesCallback): void;
/**
* Setup the PFI routes and start a express server to listen for incoming requests
* @param port - server port number
* @param callback - to be called when the server is ready
*/
listen(port: number | string, callback?: () => void): import("http").Server;
}
export {};
//# sourceMappingURL=http-server.d.ts.map