import type { HTMLAttributes } from 'svelte/elements';
export type AgentType = 'oracle' | 'scribe' | 'architect' | 'librarian' | 'alchemist' | 'archivist' | 'scholar' | 'researcher' | 'loop-diagnostic' | 'custom';
export type AgentStatus = 'idle' | 'busy' | 'processing' | 'error' | 'offline';
export type MessageType = 'request' | 'response' | 'notification' | 'error' | 'system';
export type WorkflowStatus = 'ready' | 'running' | 'completed' | 'error' | 'cancelled';
export type StageStatus = 'pending' | 'active' | 'completed' | 'error' | 'skipped';
export interface Agent {
    id: string;
    name: string;
    type: AgentType;
    status: AgentStatus;
    description?: string;
    capabilities?: string[];
    avatar?: string;
    color?: string;
    metadata?: {
        version?: string;
        lastActive?: Date;
        messageCount?: number;
        avgResponseTime?: number;
        successRate?: number;
    };
}
export interface WorkflowStage {
    id: string;
    name: string;
    description?: string;
    agentId: string;
    status: StageStatus;
    input?: string;
    output?: any;
    dependencies?: string[];
    config?: Record<string, any>;
    startTime?: Date;
    endTime?: Date;
    error?: string;
}
export interface WorkflowExecution {
    id: string;
    name: string;
    description?: string;
    status: WorkflowStatus;
    stages: WorkflowStage[];
    createdAt: Date;
    startedAt?: Date;
    completedAt?: Date;
    metadata?: {
        priority?: number;
        tags?: string[];
        source?: string;
        initiator?: string;
    };
}
export interface AgentMessage {
    id: string;
    type: MessageType;
    content: string;
    timestamp: Date;
    fromAgent: string;
    toAgent: string;
    metadata?: {
        conversationId?: string;
        parentMessageId?: string;
        priority?: number;
        processingTime?: number;
        confidence?: number;
        stage?: string;
        workflowId?: string;
    };
}
export interface AgentOrchestratorProps extends HTMLAttributes<HTMLDivElement> {
    /**
     * List of available agents
     */
    agents: Agent[];
    /**
     * Current workflow execution
     */
    workflow?: WorkflowExecution | null;
    /**
     * Show message flow between agents
     * @default true
     */
    showMessageFlow?: boolean;
    /**
     * Show agent performance metrics
     * @default true
     */
    showAgentMetrics?: boolean;
    /**
     * Show workflow execution graph
     * @default true
     */
    showExecutionGraph?: boolean;
    /**
     * Auto-scroll to latest messages
     * @default true
     */
    autoScroll?: boolean;
    /**
     * Maximum messages to display
     * @default 100
     */
    maxMessages?: number;
    /**
     * Callback when workflow starts
     */
    onWorkflowStart?: (workflowId: string) => void;
    /**
     * Callback when workflow completes
     */
    onWorkflowComplete?: (workflowId: string, result: any) => void;
    /**
     * Callback when agent sends message
     */
    onAgentMessage?: (message: AgentMessage) => void;
    /**
     * Callback when workflow encounters error
     */
    onWorkflowError?: (workflowId: string, error: Error) => void;
}
export interface A2AMessage {
    id: string;
    from: string;
    to: string;
    type: 'request' | 'response' | 'notification' | 'delegation';
    content: {
        action: string;
        data: any;
        metadata?: Record<string, any>;
    };
    timestamp: Date;
    conversationId?: string;
    parentMessageId?: string;
    priority?: number;
    requiresResponse?: boolean;
}
export interface A2ACapability {
    name: string;
    description: string;
    inputSchema?: any;
    outputSchema?: any;
    examples?: Array<{
        input: any;
        output: any;
    }>;
}
export interface A2AAgent {
    id: string;
    name: string;
    type: string;
    capabilities: A2ACapability[];
    endpoint?: string;
    status: 'available' | 'busy' | 'offline';
    metadata?: Record<string, any>;
}
export interface CrewAIWorkflow {
    id: string;
    name: string;
    crew: string;
    tasks: Array<{
        id: string;
        description: string;
        agent: string;
        tools?: string[];
        context?: any;
    }>;
    kickoff_inputs?: Record<string, any>;
}
export interface ThinkingAgentCollaboration {
    id: string;
    initiator: string;
    participants: string[];
    topic: string;
    messages: A2AMessage[];
    consensus?: {
        reached: boolean;
        summary: string;
        confidence: number;
    };
    insights?: Array<{
        agent: string;
        insight: string;
        relevance: number;
    }>;
}
export interface WorkflowTemplate {
    id: string;
    name: string;
    description: string;
    category: 'research' | 'planning' | 'analysis' | 'creation' | 'diagnostic';
    stages: Array<{
        name: string;
        agentType: AgentType;
        config?: Record<string, any>;
    }>;
    requiredInputs?: Array<{
        name: string;
        type: string;
        description: string;
    }>;
    expectedOutputs?: Array<{
        name: string;
        type: string;
        description: string;
    }>;
}
//# sourceMappingURL=types.d.ts.map