Files
2026-05-25 17:14:26 -04:00

17 lines
434 B
TypeScript

import type { Headscale } from "~/server/headscale/api";
export abstract class Integration<T> {
protected context: NonNullable<T>;
constructor(context: T) {
if (!context) {
throw new Error("Missing integration context");
}
this.context = context;
}
abstract isAvailable(): Promise<boolean> | boolean;
abstract onConfigChange(headscale: Headscale): Promise<void> | void;
abstract get name(): string;
}