import type { PeerId } from '@libp2p/interface';
import type { Multiaddr } from '@multiformats/multiaddr';
import type { Uint8ArrayList } from 'uint8arraylist';
export interface PeerRecordInit {
    peerId: PeerId;
    /**
     * Addresses of the associated peer.
     */
    multiaddrs?: Multiaddr[];
    /**
     * Monotonically-increasing sequence counter that's used to order PeerRecords in time.
     */
    seqNumber?: bigint;
}
/**
 * The PeerRecord is used for distributing peer routing records across the network.
 * It contains the peer's reachable listen addresses.
 */
export declare class PeerRecord {
    /**
     * Unmarshal Peer Record Protobuf
     */
    static createFromProtobuf: (buf: Uint8Array | Uint8ArrayList) => PeerRecord;
    static DOMAIN: string;
    static CODEC: Uint8Array<ArrayBuffer>;
    peerId: PeerId;
    multiaddrs: Multiaddr[];
    seqNumber: bigint;
    domain: string;
    codec: Uint8Array<ArrayBuffer>;
    private marshaled?;
    constructor(init: PeerRecordInit);
    /**
     * Marshal a record to be used in an envelope
     */
    marshal(): Uint8Array;
    /**
     * Returns true if `this` record equals the `other`
     */
    equals(other: unknown): boolean;
}
//# sourceMappingURL=index.d.ts.map