/**
 * Team Mode with Shared Context (Item 101)
 * Enables team collaboration with shared AI context
 */
import { EventEmitter } from 'events';
export interface TeamMember {
    id: string;
    name: string;
    role: 'admin' | 'member' | 'viewer';
    joinedAt: Date;
    lastActive: Date;
}
export interface SharedTeamContext {
    projectInfo: {
        name: string;
        path: string;
        description: string;
    };
    sharedKnowledge: Map<string, string>;
    codePatterns: string[];
    conventions: string[];
    history: TeamAction[];
}
export interface TeamAction {
    id: string;
    memberId: string;
    type: 'query' | 'edit' | 'commit' | 'review';
    summary: string;
    timestamp: Date;
}
export interface TeamConfig {
    teamId: string;
    syncInterval?: number;
    maxMembers?: number;
    retentionDays?: number;
}
export declare class TeamModeManager extends EventEmitter {
    private config;
    private members;
    private context;
    private syncTimer;
    constructor(config: TeamConfig);
    addMember(name: string, role?: TeamMember['role']): TeamMember;
    removeMember(memberId: string): boolean;
    addKnowledge(key: string, value: string): void;
    addPattern(pattern: string): void;
    addConvention(convention: string): void;
    recordAction(memberId: string, type: TeamAction['type'], summary: string): TeamAction;
    getContext(): SharedTeamContext;
    getMembers(): TeamMember[];
    startSync(): void;
    stopSync(): void;
    dispose(): void;
}
export declare function createTeamMode(config: TeamConfig): TeamModeManager;
export default TeamModeManager;
