@synet/net
Version:
Network abstraction layer for Synet. visit https://syntehtism.ai for more information.
34 lines (33 loc) • 1.55 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 { 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>>;
}