import { IRouter } from "express"; import { PluginConfig } from "./types.js"; interface App { debug: (...args: unknown[]) => void; error: (...args: unknown[]) => void; setPluginStatus: (msg: string) => void; setPluginError: (msg: string) => void; getDataDirPath?: () => string; /** * SignalK server runtime config. `configPath` is the **top of the * SignalK installation config tree** (typically `~/.signalk/`). * Distinct from `app.getDataDirPath()` which SignalK rewrites * per-plugin to a sub-directory. Used by `signalkConfigRootMount`. * Optional in this interface because the upstream `@signalk/server-api` * type doesn't declare it; the actual server runtime always provides it. */ config?: { configPath?: string; [key: string]: unknown; }; handleMessage?: (pluginId: string, delta: unknown) => void; /** * Persist the plugin's configuration to plugin-config-data/signalk-container.json. * Signal K server-api declares this; we optionally use it from updateResources() * to auto-save a new containerOverride so refreshes don't lose the user's edit. * Callback signature matches @signalk/server-api. */ savePluginOptions?: (configuration: object, cb: (err: NodeJS.ErrnoException | null) => void) => void; [key: string]: unknown; } declare const _default: (app: App) => { id: string; name: string; schema: { type: "object"; properties: { runtime: { type: string; enum: string[]; default: string; title: string; description: string; }; pruneSchedule: { type: string; enum: string[]; default: string; title: string; description: string; }; keepImageVersions: { type: string; default: number; minimum: number; title: string; description: string; }; maxConcurrentJobs: { type: string; default: number; title: string; description: string; }; updateCheckInterval: { type: string; default: string; title: string; description: string; }; backgroundUpdateChecks: { type: string; default: boolean; title: string; description: string; }; disableUserNamespaceRemap: { type: string; default: boolean; title: string; description: string; }; containerOverrides: { type: "object"; title: string; description: string; additionalProperties: { type: string; properties: { cpus: { type: string[]; title: string; }; cpuShares: { type: string[]; title: string; }; cpusetCpus: { type: string[]; title: string; }; memory: { type: string[]; title: string; }; memorySwap: { type: string[]; title: string; }; memoryReservation: { type: string[]; title: string; }; pidsLimit: { type: string[]; title: string; }; oomScoreAdj: { type: string[]; title: string; }; }; }; default: {}; }; }; }; start(config: PluginConfig): void; stop(): void; registerWithRouter(router: IRouter): void; }; export default _default; //# sourceMappingURL=index.d.ts.map