/**
 * AI Collaboration Manager
 * Manages multi-AI collaboration workflow following COLAB.md methodology
 */
export type TaskStatus = 'not_started' | 'in_progress' | 'completed' | 'blocked';
export type TaskPriority = 'high' | 'medium' | 'low';
export interface ColabTask {
    id: string;
    title: string;
    description: string;
    status: TaskStatus;
    priority: TaskPriority;
    maxFiles: number;
    estimatedTests: number;
    filesToModify: string[];
    acceptanceCriteria: string[];
    proofOfFunctionality: string[];
    assignedAgent?: string;
    startedAt?: Date;
    completedAt?: Date;
}
export interface WorkLogEntry {
    id: string;
    date: Date;
    agent: string;
    taskId?: string;
    summary: string;
    filesModified: Array<{
        file: string;
        changes: string;
    }>;
    testsAdded: Array<{
        file: string;
        count: number;
    }>;
    proofOfFunctionality: string;
    issues: string[];
    nextSteps: string[];
}
export interface ColabConfig {
    project: string;
    version: string;
    maxFilesPerIteration: number;
    targetCoverage: number;
    currentCoverage: number;
    lastUpdated: Date;
}
export interface HandoffInfo {
    fromAgent: string;
    toAgent: string;
    date: Date;
    currentTask: string;
    taskStatus: TaskStatus;
    context: string;
    filesInProgress: Array<{
        file: string;
        state: string;
    }>;
    blockers: string[];
    recommendedNextSteps: string[];
}
export declare class AIColabManager {
    private colabFilePath;
    private tasksFilePath;
    private workLogFilePath;
    private config;
    private tasks;
    private workLog;
    constructor(workingDirectory?: string);
    private loadData;
    private saveData;
    /**
     * Get all tasks
     */
    getTasks(): ColabTask[];
    /**
     * Get tasks by status
     */
    getTasksByStatus(status: TaskStatus): ColabTask[];
    /**
     * Get next available task (highest priority, not started)
     */
    getNextTask(): ColabTask | null;
    /**
     * Create a new task
     */
    createTask(task: Omit<ColabTask, 'id'>): ColabTask;
    /**
     * Update task status
     */
    updateTaskStatus(taskId: string, status: TaskStatus, agent?: string): boolean;
    /**
     * Start working on a task
     */
    startTask(taskId: string, agent: string): {
        success: boolean;
        task?: ColabTask;
        error?: string;
    };
    /**
     * Complete a task
     */
    completeTask(taskId: string, workLogEntry: Omit<WorkLogEntry, 'id' | 'date' | 'taskId'>): {
        success: boolean;
        error?: string;
    };
    /**
     * Add a work log entry
     */
    addWorkLogEntry(entry: Omit<WorkLogEntry, 'id' | 'date'>): WorkLogEntry;
    /**
     * Get recent work log entries
     */
    getRecentWorkLog(limit?: number): WorkLogEntry[];
    /**
     * Create a handoff to another AI agent
     */
    createHandoff(info: Omit<HandoffInfo, 'date'>): string;
    /**
     * Format handoff information as markdown
     */
    private formatHandoff;
    /**
     * Update COLAB.md with new work log entry
     */
    private updateColabMd;
    /**
     * Format work log entry as markdown
     */
    private formatWorkLogEntry;
    /**
     * Generate instructions for a new AI agent joining the collaboration
     */
    generateAgentInstructions(agentName: string): string;
    /**
     * Get current collaboration status
     */
    getStatus(): string;
    /**
     * List all tasks formatted
     */
    listTasks(): string;
    /**
     * Initialize default tasks from COLAB.md structure
     */
    initializeDefaultTasks(): void;
}
export declare function getAIColabManager(workingDirectory?: string): AIColabManager;
export declare function resetAIColabManager(): void;
