import type { Definition } from '@devvit/protos';
import type { SystemLogger } from '../../lib/loggers/SystemLogger.js';
import type { EnvelopeRecipient } from './EnvelopeRecipient.js';
import type { IDFactory } from './IDFactory.js';
/**
 * An EnvelopeClient is a wrapper around an Dispatcher that looks like a simply callable object of type T.
 * All of the method calls are translated into Envelope messages and sent to the underlying Dispatcher.
 * It's also an EnvelopeRecipient because it receives responses to the requests it makes from the dispatcher.
 */
export declare class EnvelopeClientBuilder {
    static build<T>(serverHostname: string, knows: Definition[], logger?: SystemLogger, idFactory?: IDFactory): T & EnvelopeRecipient;
}
//# sourceMappingURL=EnvelopeClientBuilder.d.ts.map