///
import { Extension, onChangePayload, onConfigurePayload, onConnectPayload, onLoadDocumentPayload, onDisconnectPayload, onRequestPayload, onUpgradePayload } from '@hocuspocus/server';
import { IncomingMessage, ServerResponse } from 'http';
import WebSocket from 'ws';
import { Storage } from './Storage';
import { Dashboard } from './Dashboard';
import { Collector } from './Collector';
export interface Configuration {
dashboardPath: string;
enableDashboard: boolean;
metricsInterval: number;
osMetricsInterval: number;
password: string | undefined;
port: number | undefined;
user: string | undefined;
}
export declare class Monitor implements Extension {
configuration: Configuration;
storage: Storage;
collector: Collector;
dashboard?: Dashboard;
/**
* Constructor
*/
constructor(configuration?: Partial);
private collectOsMetrics;
private collectConnectionMetrics;
private cleanMetrics;
handleRequest(request: IncomingMessage, response: ServerResponse): boolean | undefined;
handleConnection(websocket: WebSocket, request: IncomingMessage): void | undefined;
onRequest({ request, response }: onRequestPayload): Promise;
onUpgrade({ request, socket, head }: onUpgradePayload): Promise;
onConnect(data: onConnectPayload): Promise;
onDisconnect(data: onDisconnectPayload): Promise;
onLoadDocument(data: onLoadDocumentPayload): Promise;
onChange(data: onChangePayload): Promise;
onConfigure(data: onConfigurePayload): Promise;
}