UNPKG

@synet/net

Version:

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

39 lines (38 loc) 2.03 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 { CommandExecutor } from "../command/command-executor.interface"; import type { ConfigurationRepository } from "../../domain/interfaces/configuration-repository.interface"; import type { KeysRepository } from "../../domain/interfaces/keys-repository.interface"; import type { Logger } from "@synet/logger"; /** * Adapter for managing WireGuard using local wireguard-tools */ export declare class WireguardToolsAdapter implements WireguardAdapter { private readonly keysRepository; private readonly configRepository; private readonly commandExecutor; private readonly interfaceName; private readonly configDir; private readonly logger?; private readonly sudo; private readonly configPath; constructor(keysRepository: KeysRepository, configRepository: ConfigurationRepository, commandExecutor: CommandExecutor, interfaceName?: string, configDir?: string, logger?: Logger | undefined, sudo?: boolean); getKeys(): Promise<Result<WireguardKeys | null>>; generateKeys(): Promise<Result<WireguardKeys>>; private stripAddressSection; setInterface(config: InterfaceConfig): Promise<Result<void>>; addPeer(config: PeerConfig): Promise<Result<void>>; removeInterface(): Promise<Result<void>>; removeAllPeers(): Promise<Result<void>>; removePeer(publicKey: string): Promise<Result<void>>; bringUp(): Promise<Result<void>>; bringDown(): Promise<Result<void>>; reload(): Promise<Result<void>>; checkInterface(interfaceName: string): Promise<Result<void>>; status(): Promise<Result<void>>; peerStatus(publicKey: string): Promise<Result<PeerStatus | null>>; listPeers(): Promise<Result<PeerStatus[] | null>>; private extractPeerConfig; getInterfaceName(): Promise<Result<string>>; }