@synet/net
Version:
Network abstraction layer for Synet. visit https://syntehtism.ai for more information.
39 lines (38 loc) • 2.03 kB
TypeScript
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>>;
}