/**
 * Copyright 2025 Angus.Fenying <fenying@litert.org>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import type * as dT from '../Transporter.decl';
import { EventEmitter } from 'node:events';
export interface IGatewayOptions {
    name?: string;
    server: dT.IServer;
}
export interface IMemoryGateway extends dT.IGateway {
    readonly running: boolean;
    readonly name: string;
}
declare class MemoryGateway extends EventEmitter implements IMemoryGateway {
    readonly name: string;
    private readonly _server;
    private _running;
    private readonly _exchanges;
    constructor(name: string, _server: dT.IServer);
    get running(): boolean;
    private _createExchange;
    private _generateExchangeName;
    connect(): dT.ITransporter;
    start(): Promise<void>;
    stop(): Promise<void>;
}
export declare function createServer(opts: IGatewayOptions, listener?: (socket: dT.ITransporter) => void): MemoryGateway;
export declare function createConnector(name: string): dT.IConnector;
export {};
//# sourceMappingURL=Memory.Impl.d.ts.map