UNPKG

@synet/net

Version:

Network abstraction layer for Synet. visit https://syntehtism.ai for more information.

34 lines (33 loc) 1.55 kB
import type { WireguardAdapter } from "../../domain/interfaces/wireguard-adapter.interface"; import type { WireguardKeys, InterfaceConfig, PeerConfig, PeerStatus } from "../../domain/entities/wireguard"; import { Result } from "@synet/patterns"; import type { KeysRepository } from "../../domain/interfaces/keys-repository.interface"; import type { Logger } from "@synet/logger"; /** * Adapter for managing WireGuard using the synetd API */ export declare class SynetdAdapter implements WireguardAdapter { private readonly keysRepository; private readonly baseUrl; private readonly logger?; private readonly apiClient; constructor(keysRepository: KeysRepository, baseUrl?: string, logger?: Logger | undefined); getKeys(): Promise<Result<WireguardKeys | null>>; generateKeys(): Promise<Result<WireguardKeys>>; setInterface(config: InterfaceConfig): Promise<Result<void>>; addPeer(config: PeerConfig): Promise<Result<void>>; removeInterface(): Promise<Result<void>>; /** * Reload the WireGuard interface * @description This method reloads the WireGuard interface configuration * @returns Result<void> */ reload(): Promise<Result<void>>; removeAllPeers(): Promise<Result<void>>; removePeer(publicKey: string): Promise<Result<void>>; bringUp(): Promise<Result<void>>; bringDown(): Promise<Result<void>>; status(): Promise<Result<void>>; peerStatus(publicKey: string): Promise<Result<PeerStatus | null>>; listPeers(): Promise<Result<PeerStatus[] | null>>; }