export interface CollaborationSession {
    id: string;
    title: string;
    description: string;
    type: 'planning' | 'review' | 'brainstorming' | 'decision-making';
    status: 'scheduled' | 'active' | 'completed' | 'cancelled';
    created: string;
    scheduled?: string;
    started?: string;
    ended?: string;
    participants: Participant[];
    moderator: string;
    agenda: AgendaItem[];
    sharedContext: SharedContext;
    contributions: Contribution[];
    decisions: CollaborativeDecision[];
    actionItems: CollaborativeActionItem[];
    followUp?: {
        nextSession?: string;
        reviewDate?: string;
        checkpoints?: string[];
    };
}
export interface Participant {
    id: string;
    name: string;
    role: 'strategist' | 'technical-lead' | 'product-owner' | 'stakeholder' | 'advisor';
    email?: string;
    attendance: 'confirmed' | 'tentative' | 'declined' | 'attended' | 'absent';
    contributions: number;
    lastActive?: string;
}
export interface AgendaItem {
    id: string;
    title: string;
    description: string;
    timeAllocation: number;
    priority: 'must-discuss' | 'should-discuss' | 'if-time-permits';
    presenter?: string;
    relatedGoals?: string[];
    relatedMilestones?: string[];
    status: 'pending' | 'in-progress' | 'completed' | 'deferred';
    notes?: string;
}
export interface SharedContext {
    businessGoals: string[];
    milestones: string[];
    recentInsights: string[];
    competitiveIntel?: any;
    marketTrends?: string[];
    constraints?: string[];
    assumptions?: string[];
}
export interface Contribution {
    id: string;
    participantId: string;
    timestamp: string;
    type: 'insight' | 'question' | 'suggestion' | 'concern' | 'data';
    content: string;
    metadata?: {
        category?: string;
        importance?: 'low' | 'medium' | 'high' | 'critical';
        requiresFollowUp?: boolean;
        linkedContributions?: string[];
    };
    reactions?: {
        participantId: string;
        reaction: 'agree' | 'disagree' | 'question' | 'important';
        comment?: string;
    }[];
}
export interface CollaborativeDecision {
    id: string;
    decision: string;
    rationale: string;
    timestamp: string;
    votingRecord?: {
        method: 'consensus' | 'majority' | 'advisory';
        votes: {
            participantId: string;
            vote: 'approve' | 'reject' | 'abstain';
            comment?: string;
        }[];
        result: 'approved' | 'rejected' | 'deferred';
    };
    implementation: {
        owner: string;
        deadline: string;
        milestones?: string[];
        successCriteria: string[];
    };
    risks?: string[];
    dependencies?: string[];
}
export interface CollaborativeActionItem {
    id: string;
    title: string;
    description: string;
    owner: string;
    assignedBy: string;
    assignedAt: string;
    dueDate: string;
    priority: 'low' | 'medium' | 'high' | 'critical';
    relatedDecisions?: string[];
    relatedGoals?: string[];
    status: 'assigned' | 'in-progress' | 'blocked' | 'completed' | 'cancelled';
    updates?: {
        timestamp: string;
        participantId: string;
        update: string;
        newStatus?: string;
    }[];
}
export declare class StrategicCollaboration {
    private sessions;
    private templates;
    constructor();
    private initializeTemplates;
    createSession(params: {
        title: string;
        description: string;
        type: CollaborationSession['type'];
        templateId?: string;
        scheduled?: string;
        participants: Omit<Participant, 'contributions' | 'lastActive'>[];
        moderator: string;
        sharedContext?: Partial<SharedContext>;
    }): CollaborationSession;
    private createAgendaFromTemplate;
    addContribution(sessionId: string, participantId: string, contribution: Omit<Contribution, 'id' | 'participantId' | 'timestamp'>): Contribution | null;
    private flagCriticalContribution;
    recordDecision(sessionId: string, decision: Omit<CollaborativeDecision, 'id' | 'timestamp'>): CollaborativeDecision | null;
    createActionItem(sessionId: string, actionItem: Omit<CollaborativeActionItem, 'id' | 'assignedAt' | 'status' | 'updates'>): CollaborativeActionItem | null;
    updateActionItem(sessionId: string, actionItemId: string, update: {
        participantId: string;
        update: string;
        newStatus?: CollaborativeActionItem['status'];
    }): boolean;
    completeSession(sessionId: string, summary: {
        keyDecisions: string[];
        nextSteps: string[];
        followUp?: {
            nextSession?: string;
            reviewDate?: string;
            checkpoints?: string[];
        };
    }): CollaborationSession | null;
    getSession(sessionId: string): CollaborationSession | null;
    getSessions(filter?: {
        type?: CollaborationSession['type'];
        status?: CollaborationSession['status'];
        participantId?: string;
    }): CollaborationSession[];
    generateSessionSummary(sessionId: string): SessionSummary | null;
    private calculateDuration;
    private extractKeyContributions;
    private createDecisionsTimeline;
    private extractNextSteps;
    getTemplates(): CollaborationTemplate[];
}
export interface CollaborationTemplate {
    id: string;
    name: string;
    type: CollaborationSession['type'];
    suggestedDuration: number;
    agendaTemplate: Omit<AgendaItem, 'id' | 'status' | 'notes'>[];
    requiredRoles: string[];
    recommendedPrep: string[];
}
export interface SessionSummary {
    sessionId: string;
    title: string;
    type: string;
    duration: number;
    participation: {
        total: number;
        attended: number;
        contributions: number;
        avgContributionsPerPerson: number;
    };
    outcomes: {
        decisions: number;
        actionItems: number;
        criticalInsights: number;
    };
    keyContributions: any[];
    decisionsTimeline: any[];
    nextSteps: any[];
}
//# sourceMappingURL=strategicCollaboration.d.ts.map