import { ValueSpec } from "../types/config-types.ts"; import { IBuilder } from "./builder.ts"; import { Description } from "./value.ts"; export class Pointer extends IBuilder { static packageTorKey< A extends Description & { "package-id": string; interface: string }, >(a: A) { return new Pointer({ type: "pointer" as const, subtype: "package" as const, target: "tor-key" as const, ...a, }); } static packageTorAddress< A extends Description & { "package-id": string; interface: string }, >(a: A) { return new Pointer({ type: "pointer" as const, subtype: "package" as const, target: "tor-address" as const, ...a, }); } static packageLanAddress< A extends Description & { "package-id": string; interface: string }, >(a: A) { return new Pointer({ type: "pointer" as const, subtype: "package" as const, target: "lan-address" as const, ...a, }); } static packageConfig< A extends Description & { "package-id": string; selector: string; multi: boolean; interface: string; }, >(a: A) { return new Pointer({ type: "pointer" as const, subtype: "package" as const, target: "config" as const, ...a, }); } static system< A extends Description & { "package-id": string; selector: string; multi: boolean; interface: string; }, >( a: A, ) { return new Pointer({ type: "pointer" as const, subtype: "system" as const, target: "system" as const, ...a, }); } }