/**
 * @license
 * Copyright 2026 HopCode Team Team
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * Control Service - Public Programmatic API
 *
 * Provides type-safe access to control plane functionality for internal
 * CLI code. This is the ONLY programmatic interface that should be used by:
 * - nonInteractiveCli
 * - Session managers
 * - Tool execution handlers
 * - Internal CLI logic
 *
 * DO NOT use ControlDispatcher or controllers directly from application code.
 *
 * Architecture:
 * - ControlContext stores shared session state (Layer 1)
 * - ControlDispatcher handles protocol-level routing (Layer 2)
 * - ControlService provides programmatic API for internal CLI usage (Layer 3)
 *
 * ControlService and ControlDispatcher share controller instances to ensure
 * a single source of truth. All higher level code MUST access the control
 * plane exclusively through ControlService.
 */
import type { IControlContext } from './ControlContext.js';
import type { ControlDispatcher } from './ControlDispatcher.js';
import type { PermissionServiceAPI, SystemServiceAPI } from './types/serviceAPIs.js';
/**
 * Control Service
 *
 * Facade layer providing domain-grouped APIs for control plane operations.
 * Shares controller instances with ControlDispatcher to ensure single source
 * of truth and state consistency.
 */
export declare class ControlService {
    private dispatcher;
    /**
     * Construct ControlService
     *
     * @param context - Control context (unused directly, passed to dispatcher)
     * @param dispatcher - Control dispatcher that owns the controller instances
     */
    constructor(context: IControlContext, dispatcher: ControlDispatcher);
    /**
     * Permission Domain API
     *
     * Handles tool execution permissions, approval checks, and callbacks.
     * Delegates to the shared PermissionController instance.
     */
    get permission(): PermissionServiceAPI;
    /**
     * System Domain API
     *
     * Handles system-level operations and session management.
     * Delegates to the shared SystemController instance.
     */
    get system(): SystemServiceAPI;
    /**
     * MCP Domain API
     *
     * Handles Model Context Protocol server interactions.
     * Delegates to the shared MCPController instance.
     */
    /**
     * Hook Domain API
     *
     * Handles hook callback processing (placeholder for future expansion).
     * Delegates to the shared HookController instance.
     */
    /**
     * Cleanup all controllers
     *
     * Should be called on session shutdown. Delegates to dispatcher's shutdown
     * method to ensure all controllers are properly cleaned up.
     */
    cleanup(): void;
}
