///
import { CcpRouteControlRequest, CcpRouteControlResponse } from 'ilp-protocol-ccp';
import { ForwardingRoutingTable, Relation } from 'ilp-routing';
export declare class CcpSenderService extends Map {
getOrThrow(id: string): CcpSender;
}
export interface CcpSenderOpts {
peerId: string;
sendData: (packet: Buffer) => Promise;
getOwnAddress: () => string;
routeExpiry: number;
routeBroadcastInterval: number;
forwardingRoutingTable: ForwardingRoutingTable;
getPeerRelation: (accountId: string) => Relation;
}
interface CcpSenderStatus {
epoch: number;
mode: string;
}
export declare class CcpSender {
private _forwardingRoutingTable;
private _getPeerRelation;
private _getOwnAddress;
private _mode;
private _peerId;
private _sendData;
private _routeExpiry;
private _routeBroadcastInterval;
private _lastKnownEpoch;
private _lastUpdate;
private _sendRouteUpdateTimer?;
constructor({ peerId, sendData, forwardingRoutingTable, getOwnAddress, getPeerRelation, routeExpiry, routeBroadcastInterval }: CcpSenderOpts);
stop(): void;
getLastUpdate(): number;
getStatus(): CcpSenderStatus;
handleRouteControl({ mode, lastKnownRoutingTableId, lastKnownEpoch }: CcpRouteControlRequest): Promise;
private _scheduleRouteUpdate;
private _sendSingleRouteUpdate;
}
export {};