export interface PortEntry { name: string; latitude: number; longitude: number; radiusNm: number; } export interface VoyageOptions { openKnots: number; openMinutes: number; closeMinutes: number; mergeMaxGapMinutes: number; mergeMaxHopNm: number; mergeShortNm: number; phaseMinMinutes: number; } export interface Options { boatName: string; snapshotSeconds: number; maxSogKnots: number; seasonStart: string; maxStorageMB: number; chartsRemoteUrl: string; chartsBasemapUrl: string; ports: PortEntry[]; voyage: VoyageOptions; fuelRatePaths: string[]; acceptOpenNetwork: boolean; } export declare const DEFAULTS: Options; export declare const INTERNAL: { samplePeriodMs: number; staleMs: number; fabricationHorizonMs: number; rollupSpeedGuardKn: number; degradedAfterMs: number; }; export declare const KN_TO_MS = 0.514444; export declare function isCalendarMonthDay(s: string): boolean; export declare function safeRelayUrl(raw: unknown): string | undefined; export declare const RELAY_URL: string; export declare function resolveOptions(raw: unknown): Options; export declare const CONFIG_SCHEMA: { type: string; properties: { boatName: { type: string; title: string; description: string; default: string; }; snapshotSeconds: { type: string; title: string; description: string; default: number; minimum: number; }; maxSogKnots: { type: string; title: string; description: string; default: number; minimum: number; }; seasonStart: { type: string; title: string; description: string; default: string; pattern: string; }; maxStorageMB: { type: string; title: string; description: string; default: number; minimum: number; }; chartsRemoteUrl: { type: string; title: string; description: string; default: string; }; chartsBasemapUrl: { type: string; title: string; description: string; default: string; }; ports: { type: string; title: string; description: string; default: never[]; items: { type: string; required: string[]; properties: { name: { type: string; title: string; }; latitude: { type: string; title: string; minimum: number; maximum: number; }; longitude: { type: string; title: string; minimum: number; maximum: number; }; radiusNm: { type: string; title: string; description: string; default: number; }; }; }; }; voyage: { type: string; title: string; properties: { openKnots: { type: string; title: string; description: string; default: number; }; openMinutes: { type: string; title: string; default: number; }; closeMinutes: { type: string; title: string; default: number; }; mergeMaxGapMinutes: { type: string; title: string; description: string; default: number; }; mergeMaxHopNm: { type: string; title: string; default: number; }; mergeShortNm: { type: string; title: string; default: number; }; phaseMinMinutes: { type: string; title: string; description: string; default: number; }; }; }; acceptOpenNetwork: { type: string; title: string; description: string; default: boolean; }; fuelRatePaths: { type: string; title: string; description: string; default: never[]; items: { type: string; }; }; }; };