/**
 * Multi-agent contribution protocol.
 * Ports lib/skills/contribution-protocol.sh.
 *
 * Implements the contribution protocol for multi-agent research coordination:
 * template instantiation, task validation, injection block generation,
 * conflict detection, and consensus computation.
 *
 * @epic T4454
 * @task T4520
 */
import type { ManifestEntry } from '../types.js';
/** A contribution decision from an agent. */
export interface ContributionDecision {
    agentId: string;
    taskId: string;
    decision: string;
    confidence: number;
    rationale: string;
}
/** Conflict between two agent decisions. */
export interface ContributionConflict {
    field: string;
    agent1: string;
    agent2: string;
    value1: string;
    value2: string;
    severity: 'low' | 'medium' | 'high';
}
/** Consensus result from weighted voting. */
export interface ConsensusResult {
    decision: string;
    confidence: number;
    votes: Array<{
        agentId: string;
        weight: number;
        vote: string;
    }>;
    conflicts: ContributionConflict[];
}
/**
 * Generate a unique contribution ID.
 * @task T4520
 */
export declare function generateContributionId(taskId: string): string;
/**
 * Validate that a task is suitable for contribution protocol.
 * @task T4520
 */
export declare function validateContributionTask(taskId: string, cwd?: string): Promise<{
    valid: boolean;
    issues: string[];
}>;
/**
 * Generate the contribution injection block for a subagent prompt.
 * @task T4520
 */
export declare function getContributionInjection(taskId: string, protocolPath?: string, _cwd?: string): string;
/**
 * Detect conflicts between two sets of decisions.
 * @task T4520
 */
export declare function detectConflicts(decisions1: ContributionDecision[], decisions2: ContributionDecision[]): ContributionConflict[];
/**
 * Compute weighted consensus from multiple agent decisions.
 * @task T4520
 */
export declare function computeConsensus(decisions: ContributionDecision[], weights?: Record<string, number>): ConsensusResult;
/**
 * Create a manifest entry for a contribution.
 * @task T4520
 */
export declare function createContributionManifestEntry(taskId: string, contributionId: string, decisions: ContributionDecision[]): ManifestEntry;
//# sourceMappingURL=contribution.d.ts.map