/** * Base Panel * * Abstract base class for server panel integrations. * * @since v1.70.6 */ import { type ConsoleLine, type IServerPanel, type PanelConfig, type PanelConnectionResult, type PanelEventListener, type PanelEventType, type PanelServer, type PanelServerStats, type PanelType } from './panel-types.js'; /** * Validate and sanitize a Minecraft console command (v2.0.0) * @throws Error if command is not in allowlist */ export declare function validateCommand(command: string): string; /** * Abstract base panel class */ export declare abstract class BasePanel implements IServerPanel { abstract readonly type: PanelType; readonly name: string; readonly url: string; protected apiKey?: string; protected username?: string; protected password?: string; protected options: Record; protected _connected: boolean; private eventListeners; constructor(config: PanelConfig); get connected(): boolean; /** * Normalize URL (remove trailing slash) */ protected normalizeUrl(url: string): string; /** * Make HTTP request to panel API */ protected fetch(endpoint: string, options?: RequestInit): Promise; /** * Emit panel event */ protected emit(type: PanelEventType, serverId?: string, data?: unknown): void; /** * Add event listener */ on(type: PanelEventType, listener: PanelEventListener): void; /** * Remove event listener */ off(type: PanelEventType, listener: PanelEventListener): void; /** * Remove all event listeners */ removeAllListeners(): void; abstract connect(): Promise; abstract disconnect(): Promise; abstract getServers(): Promise; abstract getServer(serverId: string): Promise; abstract getServerStats(serverId: string): Promise; abstract sendCommand(serverId: string, command: string): Promise; abstract getConsoleOutput(serverId: string, lines?: number): Promise; abstract startServer(serverId: string): Promise; abstract stopServer(serverId: string): Promise; abstract restartServer(serverId: string): Promise; } //# sourceMappingURL=base-panel.d.ts.map