import type { ConfigManager } from '../config/manager.js';
import type { DaemonConfig, DaemonDangerConfig } from './types.js';
/**
 * DaemonServer — HTTP task server, disabled by default.
 *
 * Enable via: danger.daemon = true in config.
 * All routes require Bearer token auth (set via enable()).
 * POST /task    — submit a task; returns agentId.
 * GET  /task/:id — returns agent status.
 * GET  /status  — server health check.
 */
export declare class DaemonServer {
    private config;
    private enabled;
    private server;
    private port;
    private host;
    private agentManager;
    private readonly runtimeServices;
    private readonly integrationHelpers;
    private configManager;
    private authToken;
    private userAuth;
    private githubWebhookSecret;
    private automationManager;
    private runtimeBus;
    private readonly runtimeStore;
    private readonly runtimeDispatch;
    private readonly controlPlaneGateway;
    private readonly gatewayMethods;
    private readonly sessionBroker;
    private readonly approvalBroker;
    private readonly routeBindings;
    private readonly deliveryManager;
    private readonly surfaceRegistry;
    private readonly channelPolicy;
    private readonly channelPlugins;
    private readonly channelReplyPipeline;
    private readonly providerRuntime;
    private readonly builtinChannels;
    private readonly watcherRegistry;
    private readonly platformServiceManager;
    private readonly distributedRuntime;
    private readonly voiceService;
    private readonly webSearchService;
    private readonly knowledgeService;
    private readonly knowledgeGraphqlService;
    private readonly mediaProviders;
    private readonly multimodalService;
    private readonly artifactStore;
    private readonly serviceRegistry;
    private readonly serveFactory;
    private readonly pendingSurfaceReplies;
    private readonly controlPlaneHelper;
    private readonly surfaceDeliveryHelper;
    private readonly surfaceActionHelper;
    private readonly transportEventsHelper;
    private readonly httpRouter;
    private replyPoller;
    private tlsState;
    private approvalBrokerUnsubscribe;
    constructor(config?: DaemonConfig, _configManager?: ConfigManager);
    listRecentControlPlaneEvents(limit?: number): readonly import('../control-plane/gateway.js').ControlPlaneRecentEvent[];
    /**
     * Enable the daemon. Requires danger.daemon = true in config.
     * The provided token is used to authenticate all incoming requests.
     * Returns true if enabled, false if the config forbids it.
     */
    enable(dangerConfig: DaemonDangerConfig, token?: string): boolean;
    /**
     * Start the daemon. Refuses to start if not explicitly enabled.
     */
    start(): Promise<void>;
    /**
     * Stop the daemon server.
     */
    stop(): Promise<void>;
    /**
     * Returns true if the server is currently running.
     */
    get isRunning(): boolean;
    private extractAuthToken;
    private checkAuth;
    private requireAuthenticatedSession;
    private requireAdmin;
    private requireRemotePeer;
    private describeAuthenticatedPrincipal;
    private getGrantedGatewayScopes;
    private validateGatewayInvocation;
    private tryUpgradeControlPlaneWebSocket;
    private handleControlPlaneWebSocketOpen;
    private handleControlPlaneWebSocketMessage;
    private handleControlPlaneWebSocketClose;
    private invokeWebSocketControlPlaneCall;
    private invokeGatewayMethodCall;
    private handleRequest;
    private dispatchApiRoutes;
    private parseJsonBody;
    private parseOptionalJsonBody;
    private parseJsonText;
    private recordApiResponse;
    private handleApprovalAction;
    private trySpawnAgent;
    private syncSpawnedAgentTask;
    private syncFinishedAgentTask;
    private surfaceDeliveryEnabled;
    private pollPendingSurfaceReplies;
    private trustProxyEnabled;
    private signWebhookPayload;
}
//# sourceMappingURL=facade.d.ts.map