import { ArchetypeLoader } from '@pellux/goodvibes-sdk/platform/agents/archetypes';
import { AgentMessageBus } from '../../agents/message-bus.js';
import { WrfcController } from '../../agents/wrfc-controller.js';
import type { ConfigManager } from '../../config/manager.js';
import type { RuntimeEventBus } from '../../runtime/events/index.js';
import type { ExecutionIntent } from '@pellux/goodvibes-sdk/platform/runtime/execution-intents';
import type { AgentInput } from '@pellux/goodvibes-sdk/platform/tools/agent/schema';
export type AgentExecutor = {
    runAgent(record: AgentRecord): Promise<void>;
};
export interface AgentManagerDependencies {
    readonly archetypeLoader?: Pick<ArchetypeLoader, 'loadArchetype'>;
    readonly messageBus?: Pick<AgentMessageBus, 'registerAgent'>;
    readonly wrfcController?: Pick<WrfcController, 'createChain'> | null;
    readonly executor?: AgentExecutor | null;
    readonly configManager?: Pick<ConfigManager, 'get'>;
}
export declare const AGENT_TEMPLATES: Record<string, {
    description: string;
    defaultTools: string[];
}>;
export interface AgentRecord {
    id: string;
    task: string;
    template: string;
    model?: string;
    provider?: string;
    fallbackModels?: string[];
    routing?: AgentInput['routing'];
    executionIntent?: ExecutionIntent;
    reasoningEffort?: 'instant' | 'low' | 'medium' | 'high';
    context?: string;
    tools: string[];
    status: 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
    startedAt: number;
    completedAt?: number;
    progress?: string;
    toolCallCount: number;
    usage?: {
        inputTokens: number;
        outputTokens: number;
        cacheReadTokens: number;
        cacheWriteTokens: number;
        reasoningTokens?: number;
        llmCallCount: number;
        turnCount: number;
        reasoningSummaryCount?: number;
    };
    error?: string;
    fullOutput?: string;
    streamingContent?: string;
    wrfcId?: string;
    dangerously_disable_wrfc?: boolean;
    cohort?: string;
    orchestrationGraphId?: string;
    orchestrationNodeId?: string;
    orchestrationDepth: number;
    parentAgentId?: string;
    parentNodeId?: string;
    capabilityCeilingTools?: string[];
    successCriteria?: string[];
    requiredEvidence?: string[];
    writeScope?: string[];
    executionProtocol: 'direct' | 'gather-plan-apply';
    reviewMode: 'none' | 'wrfc';
    communicationLane: 'parent-only' | 'parent-and-children' | 'cohort' | 'direct';
    knowledgeInjections?: Array<{
        id: string;
        cls: string;
        summary: string;
        reason: string;
        confidence: number;
        reviewState: 'fresh' | 'reviewed' | 'stale' | 'contradicted';
    }>;
}
export declare class AgentManager {
    private agents;
    private runtimeBus;
    private orchestrationGraphs;
    private readonly archetypeLoader;
    private readonly messageBus;
    private wrfcController;
    private executor;
    private readonly configManager;
    constructor(deps?: AgentManagerDependencies);
    setRuntimeBus(runtimeBus: RuntimeEventBus | null): void;
    private deriveEffectiveTools;
    spawn(input: AgentInput): AgentRecord;
    getStatus(id: string): AgentRecord | null;
    cancel(id: string): boolean;
    listByGraph(graphId: string): AgentRecord[];
    cancelSubtree(rootAgentId: string): string[];
    cancelGraph(graphId: string): string[];
    list(): AgentRecord[];
    listByCohort(cohort: string): AgentRecord[];
    clear(): void;
    exportState(): AgentRecord[];
    importState(records: AgentRecord[]): void;
    setExecutor(executor: AgentExecutor | null): void;
    setWrfcController(wrfcController: Pick<WrfcController, 'createChain'> | null): void;
}
//# sourceMappingURL=manager.d.ts.map