export interface Agent {
    id: string;
    name: string;
    role: 'primary' | 'researcher' | 'coder' | 'reviewer' | 'tester' | 'documenter' | 'custom';
    capabilities: string[];
    systemPrompt: string;
    status: 'idle' | 'working' | 'waiting' | 'completed' | 'error';
    memory: AgentMemory;
    createdAt: Date;
    lastActiveAt: Date;
}
export interface AgentMemory {
    context: string[];
    findings: Record<string, any>;
    decisions: Decision[];
    conversations: ConversationThread[];
}
export interface Decision {
    id: string;
    description: string;
    reasoning: string;
    timestamp: Date;
    confidence: number;
}
export interface ConversationThread {
    id: string;
    participants: string[];
    messages: Message[];
    status: 'active' | 'completed' | 'paused';
    topic: string;
    startedAt: Date;
    lastMessageAt: Date;
}
export interface Message {
    id: string;
    from: string;
    to: string | string[];
    content: string;
    type: 'query' | 'response' | 'instruction' | 'result' | 'error';
    attachments?: MessageAttachment[];
    timestamp: Date;
}
export interface MessageAttachment {
    type: 'code' | 'file' | 'analysis' | 'test-result' | 'documentation';
    content: any;
    metadata?: Record<string, any>;
}
export interface Task {
    id: string;
    description: string;
    assignedTo: string[];
    requiredCapabilities: string[];
    status: 'pending' | 'assigned' | 'in-progress' | 'review' | 'completed' | 'failed';
    dependencies: string[];
    subtasks: Task[];
    results?: TaskResult;
    createdAt: Date;
    startedAt?: Date;
    completedAt?: Date;
}
export interface TaskResult {
    success: boolean;
    output: any;
    artifacts: Artifact[];
    errors?: string[];
    performance: {
        duration: number;
        tokensUsed?: number;
        toolCalls?: number;
    };
}
export interface Artifact {
    type: 'code' | 'document' | 'test' | 'analysis' | 'data';
    name: string;
    content: any;
    path?: string;
}
export interface OrchestrationSession {
    id: string;
    name: string;
    goal: string;
    agents: Agent[];
    tasks: Task[];
    conversations: ConversationThread[];
    status: 'planning' | 'executing' | 'paused' | 'completed' | 'failed';
    startedAt: Date;
    completedAt?: Date;
    results?: SessionResults;
}
export interface SessionResults {
    goalAchieved: boolean;
    summary: string;
    artifacts: Artifact[];
    insights: string[];
    nextSteps: string[];
}
export interface AgentTemplate {
    name: string;
    role: Agent['role'];
    systemPrompt: string;
    capabilities: string[];
    tools?: string[];
}
export interface OrchestrationStrategy {
    name: string;
    description: string;
    applicableFor: string[];
    steps: StrategyStep[];
}
export interface StrategyStep {
    name: string;
    agents: string[];
    parallel: boolean;
    condition?: string;
    actions: string[];
}
//# sourceMappingURL=types.d.ts.map