/**
 * Skill dispatch and protocol selection.
 * Augments CLEO's multi-strategy dispatch with @cleocode/caamp catalog dispatch matrix.
 *
 * Implements multi-strategy dispatch:
 *   1. Label-based: task labels match skill tags
 *   2. Catalog-based: ct-skills dispatch matrix (via CAAMP catalog bridge)
 *   3. Type-based: task type maps to protocol
 *   4. Keyword-based: title/description matches triggers
 *   5. Fallback: ct-task-executor
 *
 * @epic T4454
 * @task T4517
 */
import type { Task } from '@cleocode/contracts';
import type { DispatchResult, SkillProtocolType } from './types.js';
/**
 * Auto-dispatch a task to the most appropriate skill.
 * Tries strategies in priority order: label -> catalog -> type -> keyword -> fallback.
 * @task T4517
 */
export declare function autoDispatch(task: Task, cwd?: string): DispatchResult;
/**
 * Dispatch with explicit skill override.
 * Verifies the skill exists before returning.
 * @task T4517
 */
export declare function dispatchExplicit(skillName: string, cwd?: string): DispatchResult | null;
/**
 * Get the protocol type for a dispatch result.
 * @task T4517
 */
export declare function getProtocolForDispatch(result: DispatchResult): SkillProtocolType | null;
/**
 * Prepare spawn context for a dispatched skill.
 * Returns the skill name and protocol needed for token injection.
 * @task T4517
 */
export declare function prepareSpawnContext(task: Task, overrideSkill?: string, cwd?: string): {
    skill: string;
    protocol: SkillProtocolType | null;
    dispatch: DispatchResult;
};
/** Result of multi-skill composition. */
export interface MultiSkillComposition {
    skillCount: number;
    primarySkill: string;
    skills: Array<{
        skill: string;
        mode: 'full' | 'progressive';
        estimatedTokens: number;
    }>;
    totalEstimatedTokens: number;
    prompt: string;
}
/**
 * Compose multiple skills into a single prompt with progressive disclosure.
 * Ports skill_prepare_spawn_multi from lib/skills/skill-dispatch.sh.
 *
 * The first skill is loaded fully (primary). Secondary skills use progressive
 * disclosure (frontmatter + first section only) to save context budget.
 *
 * @task T4712
 * @epic T4663
 */
export declare function prepareSpawnMulti(skillNames: string[], tokenValues: Record<string, string>, cwd?: string): MultiSkillComposition;
//# sourceMappingURL=dispatch.d.ts.map