/**
 * Agentic swarming: run several specialized ECC agents against a task,
 * then return their role-scoped findings to the main agent/user.
 *
 * Filesystem writes stay centralized in the main agent. Swarm workers are
 * analysis-only unless a later coordinator adds explicit write locking.
 */
import type { GrawkusConfig, SwarmConfig } from './types.js';
export declare const SWARM_SENTINEL = "__SWARM__";
export declare const DEFAULT_SWARM_MAX_AGENTS = 5;
export declare const MIN_SWARM_AGENTS = 2;
export declare const MAX_SWARM_AGENTS = 8;
export interface SwarmAgent {
    name: string;
    prompt: string;
}
export interface SwarmResult {
    agent: string;
    text: string;
    durationMs: number;
    error?: string;
}
export interface SwarmCommandPayload {
    mode: 'auto' | 'legacy';
    task: string;
    agents?: string[];
    execute?: boolean;
}
export interface SwarmPlan {
    task: string;
    agents: string[];
    phases: string[];
    setup: {
        goal: string;
        budget: string;
        target: string;
        assets: string;
        quality: string;
    };
}
export declare function clampSwarmMaxAgents(value: unknown): number;
export declare function resolveSwarmConfig(config?: SwarmConfig): Required<Pick<SwarmConfig, 'setupWizard' | 'maxAgents'>> & SwarmConfig;
export declare function parseSwarmCommandArgs(args: string): {
    payload: SwarmCommandPayload;
} | {
    error: string;
};
export declare function encodeSwarmSentinel(payload: SwarmCommandPayload): string;
export declare function decodeSwarmSentinel(value: string): SwarmCommandPayload | null;
export declare function chooseSwarmAgentSlugs(task: string, maxAgents?: number): string[];
export declare function buildSwarmPlan(payload: SwarmCommandPayload, swarmConfig?: SwarmConfig): SwarmPlan;
export declare function buildSwarmAgentTask(plan: SwarmPlan): string;
export declare function resolveAgents(slugs: string[]): SwarmAgent[];
export declare function runSwarm(agents: SwarmAgent[], task: string, config: GrawkusConfig): Promise<SwarmResult[]>;
export declare function formatSwarmResults(results: SwarmResult[], plan?: SwarmPlan): string;
export declare function buildSwarmHandoffPrompt(plan: SwarmPlan, results: SwarmResult[]): string;
