/**
 * Capability Matrix (Core)
 *
 * Defines which operations can run natively in TypeScript vs requiring
 * the CLEO CLI (bash). Used by dual-mode routing to determine execution path.
 *
 * Each operation is tagged as:
 * - native: Runs in TypeScript, works cross-platform (no bash needed)
 * - cli: Requires CLEO CLI subprocess (Unix-only)
 * - hybrid: Can run either way (prefers CLI when available)
 *
 * preferredChannel encodes token-efficiency routing (from routing-table.ts):
 * - cli: Human-readable output, shell integration, interactive prompts
 * - either: No significant difference or context-dependent
 *
 * Canonical location: src/core/routing/capability-matrix.ts
 * Re-exported from: src/dispatch/lib/capability-matrix.ts (backward compat)
 *
 * @task T5706
 */
/**
 * Execution mode for an operation
 */
export type ExecutionMode = 'native' | 'cli' | 'hybrid';
/**
 * Gateway type
 */
export type GatewayType = 'query' | 'mutate';
/**
 * Preferred communication channel for token efficiency.
 * CLI is the only dispatch channel.
 * @task T5240
 */
export type PreferredChannel = 'cli' | 'either';
export interface OperationCapability {
    domain: string;
    operation: string;
    gateway: GatewayType;
    mode: ExecutionMode;
    preferredChannel: PreferredChannel;
}
/**
 * Capability report returned by system.doctor
 */
export interface CapabilityReport {
    totalOperations: number;
    native: number;
    cli: number;
    hybrid: number;
    domains: Record<string, {
        native: string[];
        cli: string[];
        hybrid: string[];
    }>;
}
/**
 * Lookup the execution mode for a specific operation
 */
export declare function getOperationMode(domain: string, operation: string, gateway: GatewayType): ExecutionMode | undefined;
/**
 * Check if an operation can run natively (without CLI)
 */
export declare function canRunNatively(domain: string, operation: string, gateway: GatewayType): boolean;
/**
 * Check if an operation requires CLI
 */
export declare function requiresCLI(domain: string, operation: string, gateway: GatewayType): boolean;
/**
 * Get all native-capable operations for a domain
 */
export declare function getNativeOperations(domain: string): OperationCapability[];
/**
 * Generate a capability report for system.doctor
 */
export declare function generateCapabilityReport(): CapabilityReport;
/**
 * Get the full capability matrix (for testing/introspection)
 */
export declare function getCapabilityMatrix(): ReadonlyArray<OperationCapability>;
//# sourceMappingURL=capability-matrix.d.ts.map