signalk-parquet
Version:
SignalK plugin and webapp that archives SK data to Parquet files with a regimen control system, advanced querying, Claude integrated AI analysis, spatial capabilities, and REST API.
98 lines • 2.99 kB
TypeScript
import { ServerAPI } from '@signalk/server-api';
import * as WebSocket from 'ws';
export declare class HistoricalStreamingService {
private app;
private activeSubscriptions;
private historyAPI;
private wsServer?;
private connectedClients;
private streamBuffers;
private streamLastTimestamps;
private streamTimeSeriesData;
private streamsConfigPath;
private streamsAlreadyLoaded;
private lastSubscriptionCheck;
private readonly SUBSCRIPTION_CHECK_INTERVAL;
private streamTimeouts;
constructor(app: ServerAPI, dataDir?: string);
private setupSubscriptionInterceptor;
private isSubscriptionMessage;
private handleSubscriptionRequest;
private handleSubscribe;
private handleUnsubscribe;
private isHistoricalDataPath;
private startHistoricalStream;
private streamHistoricalData;
private processHistoricalDataResponse;
private streamSampleDataFallback;
shutdown(): void;
getActiveSubscriptions(): any[];
triggerHistoricalStream(path: string): void;
private streams;
private streamIntervals;
private parseTimeRange;
private loadPersistedStreams;
private saveStreamsConfig;
createStream(streamConfig: any): any;
getAllStreams(): any[];
startStream(streamId: string): {
success: boolean;
error: string;
message?: undefined;
} | {
success: boolean;
message: string;
error?: undefined;
} | {
success: boolean;
error?: undefined;
message?: undefined;
};
private startContinuousStreaming;
private broadcastToClients;
private broadcastTimeSeriesData;
private emitSignalKStreamData;
private getHistoricalDataWindow;
private generateSampleTimeSeries;
private generateSampleValue;
pauseStream(streamId: string): {
success: boolean;
error: string;
paused?: undefined;
} | {
success: boolean;
paused: boolean;
error?: undefined;
};
stopStream(streamId: string): {
success: boolean;
error: string;
} | {
success: boolean;
error?: undefined;
};
deleteStream(streamId: string): {
success: boolean;
error: string;
} | {
success: boolean;
error?: undefined;
};
updateStream(streamId: string, streamConfig: any): boolean;
getStreamStats(): {
totalStreams: number;
runningStreams: number;
pausedStreams: number;
stoppedStreams: number;
totalDataPointsStreamed: any;
connectedClients: number;
streams: any[];
};
addWebSocketClient(ws: WebSocket): void;
removeWebSocketClient(ws: WebSocket): void;
private storeTimeSeriesData;
private deduplicateDataPoints;
private enrichDataPointsWithMovingAverages;
getStreamTimeSeriesData(streamId: string, limit?: number): any[] | null;
}
//# sourceMappingURL=historical-streaming.d.ts.map