import EventEmitter from 'events'; import express from 'express'; import { ServerConfig } from './config.js'; import { Method } from '@inner-dj/common'; import type { ClientInterface, Payload } from '@inner-dj/common'; declare module 'express-session' { interface SessionData { admin?: boolean; } } export interface SimpleClientInfo { clientId: string | null; nowPlaying: string | null; paused: boolean; } export declare class Web extends EventEmitter implements ClientInterface { private config; private _webserver; private _clients; private _app; private _guides; private _downloader; constructor(config: ServerConfig); initialize: () => Promise; emitClientStateChange: () => void; createClientStateData: () => SimpleClientInfo[]; registerRoute: (method: Method, route: string, handler: (req: express.Request, res: express.Response, next?: express.NextFunction) => any) => void; registerGuide: (html: string) => number; sendPayload: (payload: Payload) => Promise; close: () => void; }