import { Pattern } from '../types';
export interface ConflictResult {
    patternA: Pattern;
    patternB: Pattern;
    resolved: boolean;
    winner: Pattern | null;
    resolutionMethod: 'data_driven' | 'vote' | 'codebase_majority' | 'lead_decision' | 'unresolved';
    reason: string;
}
export interface VoteSession {
    patternId: string;
    title: string;
    optionA: string;
    optionB: string;
    votes: Record<string, 'A' | 'B' | 'none'>;
    startedAt: string;
    deadline: string;
    quorum: number;
    totalMembers: number;
}
export declare class ConflictDetector {
    private voteStorePath;
    constructor(cellDir: string);
    detectConflicts(patterns: Pattern[]): [Pattern, Pattern][];
    resolveConflict(patternA: Pattern, patternB: Pattern, bugData?: {
        patternA_bugs: number;
        patternB_bugs: number;
    }, codebaseStats?: {
        patternA_usage: number;
        patternB_usage: number;
    }, leadPreference?: 'A' | 'B'): ConflictResult;
    createVote(patternA: Pattern, patternB: Pattern, totalMembers: number, durationHours?: number): VoteSession;
    castVote(sessionId: string, username: string, vote: 'A' | 'B' | 'none'): VoteSession | null;
    tallyVote(session: VoteSession): {
        winner: 'A' | 'B' | null;
        resolved: boolean;
    };
    getVoteStatus(session: VoteSession): string;
    private saveVoteSession;
    private loadVoteSessions;
    private saveAllSessions;
}
//# sourceMappingURL=conflict-detector.d.ts.map