UNPKG

@achingbrain/nat-port-mapper

Version:
31 lines 1.66 kB
import { Device } from './device.js'; import type { Gateway, MapPortOptions, PortMapping, UPnPNATOptions } from '../index.js'; import type { Logger } from '@libp2p/logger'; import type { AbortOptions } from 'abort-error'; export interface RefreshableMapping { refreshTimeout?: ReturnType<typeof setTimeout>; ttl: number; } export declare abstract class InternetGatewayService<Mapping extends RefreshableMapping> implements Gateway { id: string; host: string; port: number; readonly family: 'IPv4' | 'IPv6'; private gateway; protected readonly log: Logger; protected readonly mappings: Map<number, Mapping[]>; protected readonly options: UPnPNATOptions; constructor(gateway: Device, options?: UPnPNATOptions); protected getGateway(options?: AbortOptions): Promise<Device>; private setGateway; externalIp(options?: AbortOptions): Promise<string>; mapAll(localPort: number, options?: MapPortOptions): AsyncGenerator<PortMapping, void, unknown>; map(localPort: number, localHost: string, options?: MapPortOptions): Promise<PortMapping>; protected abstract mapPort(localPort: number, localHost: string, options?: MapPortOptions): Promise<number>; abstract unmap(localPort: number, options?: AbortOptions): Promise<void>; protected addMapping(localPort: number, mapping: Mapping): void; protected configureRefresh(localPort: number, mapping: Mapping, options?: MapPortOptions): void; protected abstract refreshPort(localPort: number, options?: AbortOptions): Promise<void>; stop(options?: AbortOptions): Promise<void>; } //# sourceMappingURL=internet-gateway-service.d.ts.map