import { MiraHttpServer } from "./HttpServer";
import { LibraryStorage } from "./LibraryStorage";
import { MiraWebsocketServer } from "./server";
import { ServerPluginManager } from "./ServerPluginManager";
import { SettingsManager } from "./SettingsManager";
import { ThumbnailService } from "./services/ThumbnailService";
import { MetadataService } from "./services/MetadataService";
import { DatabaseBackupService } from './services/DatabaseBackupService';
import { DownloadExecutorService } from './services/DownloadExecutorService';
export interface ServerConfig {
    httpPort?: number;
    wsPort?: number;
    dataPath?: string;
}
export declare class MiraServer {
    dataPath: string;
    httpServer?: MiraHttpServer;
    webSocketServer?: MiraWebsocketServer;
    pluginManager?: ServerPluginManager;
    settingsManager: SettingsManager;
    thumbnailService: ThumbnailService;
    metadataService: MetadataService;
    config: ServerConfig;
    libraries?: LibraryStorage;
    databaseBackupService: DatabaseBackupService;
    downloadExecutor: DownloadExecutorService;
    constructor(config?: ServerConfig);
    start(): Promise<void>;
    stop(): Promise<void>;
    getHttpServer(): MiraHttpServer;
    getDataPath(): string;
    getWebSocketServer(): MiraWebsocketServer;
    static createAndStart(config?: ServerConfig): Promise<MiraServer>;
}
//# sourceMappingURL=MiraServer.d.ts.map