import { AbstractMessageStream } from './abstract-message-stream.ts';
import type { MessageStreamInit } from './abstract-message-stream.ts';
import type { CounterGroup, Logger, MultiaddrConnection, MessageStreamDirection, AbortOptions } from '@libp2p/interface';
import type { Multiaddr } from '@multiformats/multiaddr';
export interface AbstractMultiaddrConnectionInit extends Omit<MessageStreamInit, 'log'> {
    remoteAddr: Multiaddr;
    direction: MessageStreamDirection;
    log: Logger;
    inactivityTimeout?: number;
    localAddr?: Multiaddr;
    metricPrefix?: string;
    metrics?: CounterGroup;
}
export declare abstract class AbstractMultiaddrConnection extends AbstractMessageStream implements MultiaddrConnection {
    remoteAddr: Multiaddr;
    private metricPrefix;
    private metrics?;
    constructor(init: AbstractMultiaddrConnectionInit);
    close(options?: AbortOptions): Promise<void>;
    /**
     * Wait for any unsent data to be written to the underlying resource, then
     * close the resource and resolve the returned promise
     */
    abstract sendClose(options?: AbortOptions): Promise<void>;
}
//# sourceMappingURL=abstract-multiaddr-connection.d.ts.map