///
import { Api, KnownKeys } from "@ganache/utils";
import { RecognizedString, WebSocket, HttpRequest } from "@trufflesuite/uws-js-unofficial";
export type { WebSocket, HttpRequest } from "@trufflesuite/uws-js-unofficial";
/**
* Connects an arbitrary public chain provider to ganache
*/
export interface Connector {
provider: Provider;
/**
* Instructs the connector to initialize its internal components. Must return
* a promise that resolves once it has fully started, or reject if it couldn't
* start.
*/
connect: () => Promise;
/**
* Parses a raw message into something that can be handled by `handle`
* @param message -
*/
parse(message: Buffer): RequestFormat;
/**
* Handles a parsed message
* @param payload -
*/
handle: ((payload: RequestFormat, connection: HttpRequest) => Promise<{
value: unknown;
}>) | ((payload: RequestFormat[], connection: HttpRequest) => Promise<{
value: unknown[];
}>) | ((payload: RequestFormat, connection: WebSocket) => Promise<{
value: unknown;
}>) | ((payload: RequestFormat[], connection: WebSocket) => Promise<{
value: unknown[];
}>);
/**
* Formats the response (returned from `handle`)
* @param response -
* @param payload -
*/
format(result: ResponseFormat, payload: RequestFormat): RecognizedString | Generator;
format(result: ResponseFormat, payload: RequestFormat): RecognizedString;
/**
* Formats the error response
* @param error -
* @param payload -
*/
formatError(error: Error, payload: RequestFormat): RecognizedString;
close(): void | Promise;
}
export interface WebsocketConnector extends Connector {
handle(payload: RequestFormat, connection: WebSocket): Promise<{
value: ReturnType]>;
}>;
}
//# sourceMappingURL=connector.d.ts.map