/**
 * Main Onebox coordinator class
 *
 * Coordinates all components and provides the main API
 */
import { OneboxDatabase } from '../database/index.js';
import { OneboxDockerManager } from './docker.js';
import { OneboxServicesManager } from './services.js';
import { OneboxRegistriesManager } from './registries.js';
import { OneboxReverseProxy } from './reverseproxy.js';
import { OneboxDnsManager } from './dns.js';
import { OneboxSslManager } from './ssl.js';
import { OneboxDaemon } from './daemon.js';
import { OneboxSystemd } from './systemd.js';
import { CloudflareDomainSync } from './cloudflare-sync.js';
import { CertRequirementManager } from './cert-requirement-manager.js';
import { RegistryManager } from './registry.js';
import { PlatformServicesManager } from './platform-services/index.js';
import { AppStoreManager } from './appstore.js';
import { ProxyLogReceiver } from './proxy-log-receiver.js';
import { BackupManager } from './backup-manager.js';
import { BackupScheduler } from './backup-scheduler.js';
import { ExternalGatewayManager } from './external-gateway.js';
import { ManagedDcRouterManager } from './managed-dcrouter.js';
import { OneboxUpdateManager } from './update-manager.js';
import { OpsServer } from '../opsserver/index.js';
import type * as interfaces from '../../dist_ts_interfaces/index.js';
export declare class Onebox {
    database: OneboxDatabase;
    docker: OneboxDockerManager;
    services: OneboxServicesManager;
    registries: OneboxRegistriesManager;
    reverseProxy: OneboxReverseProxy;
    dns: OneboxDnsManager;
    ssl: OneboxSslManager;
    daemon: OneboxDaemon;
    systemd: OneboxSystemd;
    cloudflareDomainSync: CloudflareDomainSync;
    certRequirementManager: CertRequirementManager;
    registry: RegistryManager;
    platformServices: PlatformServicesManager;
    appStore: AppStoreManager;
    proxyLogReceiver: ProxyLogReceiver;
    backupManager: BackupManager;
    backupScheduler: BackupScheduler;
    managedDcRouter: ManagedDcRouterManager;
    externalGateway: ExternalGatewayManager;
    updateManager: OneboxUpdateManager;
    opsServer: OpsServer;
    private initialized;
    constructor();
    /**
     * Initialize all components
     */
    init(): Promise<void>;
    assertAdminUiDomainCompatible(domainArg: string): Promise<void>;
    private ensurePasskeyConfiguration;
    private ensurePasskeyAdminUser;
    /**
     * Check if Onebox is initialized
     */
    isInitialized(): boolean;
    /**
     * Get system status
     */
    getSystemStatus(): Promise<{
        onebox: {
            version: string;
            update: interfaces.data.IOneboxUpdateStatus;
        };
        docker: {
            running: boolean;
            version: any;
            cpuUsage: number;
            memoryUsage: number;
            memoryTotal: number;
            networkIn: number;
            networkOut: number;
        };
        reverseProxy: {
            state: import("./coretraffic.js").ICoreTrafficStatusObservation["state"];
            running: boolean | null;
            observedAt: number;
            http: {
                running: boolean | null;
                port: number;
            };
            https: {
                running: boolean | null;
                port: number;
                certificates: number;
            };
            routes: number;
            backend: "coretraffic-docker";
        };
        dns: {
            configured: boolean;
        };
        ssl: {
            configured: boolean;
            certificateCount: number;
        };
        services: {
            total: number;
            running: number;
            stopped: number;
        };
        platformServices: {
            type: interfaces.data.TPlatformServiceType;
            displayName: string;
            status: interfaces.data.TPlatformServiceStatus;
            resourceCount: number;
        }[];
        certificateHealth: {
            valid: number;
            expiringSoon: number;
            expired: number;
            expiringDomains: {
                domain: string;
                daysRemaining: number;
            }[];
        };
    }>;
    /**
     * Start OpsServer (TypedRequest-based, serves new UI)
     */
    startHttpServer(port?: number): Promise<void>;
    /**
     * Stop OpsServer
     */
    stopHttpServer(): Promise<void>;
    /**
     * Shutdown Onebox gracefully
     */
    shutdown(): Promise<void>;
}
