/** * HTTP client for talking to the backup-server container's API. * * Uses Node's built-in fetch (Node 22+). The plugin discovers the actual * base URL via signalk-container's resolveContainerAddress() after * ensureRunning(), then constructs this client. * * Methods used by the plugin's first-run logic: * - waitForReady() — poll /api/health until 200 or timeout * - getSettings() — GET /api/settings (read scheduler/cloud config) * - putSettings() — PUT /api/settings (seed default schedule on first run) * - getGuiUrl() — GET /api/gui-url (used by the redirect HTML's proxy) * * The full API surface (backups list/create/restore, cloud sync, etc.) is * exercised by the container's own UI. The plugin doesn't need to wrap it. */ export interface BackupServerSettings { scheduler?: { configured?: boolean; daily?: { enabled: boolean; retain: number; }; hourly?: { enabled: boolean; retain: number; }; weekly?: { enabled: boolean; retain: number; }; startup?: { enabled: boolean; retain: number; }; }; cloud?: { mode?: 'off' | 'manual' | 'daily' | 'weekly'; }; excludes?: string[]; [key: string]: unknown; } export interface BackupServerHealth { status: string; uptime?: number; version?: string; } export declare class BackupClient { private readonly baseUrl; constructor(baseUrl: string); private request; waitForReady(maxMs?: number, intervalMs?: number, signal?: AbortSignal): Promise; getSettings(): Promise; putSettings(patch: Partial): Promise; getGuiUrl(): Promise<{ url: string; }>; get base(): string; } //# sourceMappingURL=backup-client.d.ts.map