/**
 * Comment Builder for External Tool Sync
 *
 * Generates formatted comments for posting to external tools
 * (GitHub, JIRA, Azure DevOps) with commit/PR links and summaries.
 */
import { GitCommit, GitRepository, PullRequest } from '../utils/git-utils.js';
import { Task, UserStory } from './specs/spec-task-mapper.js';
export interface CommentContent {
    userStory: UserStory;
    tasks: Task[];
    commits: GitCommit[];
    pullRequests: PullRequest[];
    summary: string;
}
export interface FormattedComment {
    markdown: string;
    html?: string;
    plain?: string;
}
/**
 * Build comment for completed user story
 */
export declare function buildUserStoryComment(content: CommentContent, repo: GitRepository): FormattedComment;
/**
 * Build short summary comment (for quick updates)
 */
export declare function buildShortComment(commits: GitCommit[], repo: GitRepository, summary?: string): FormattedComment;
/**
 * Build comment for multiple commits (batch update)
 */
export declare function buildCommitBatchComment(commits: GitCommit[], repo: GitRepository, groupByDate?: boolean): FormattedComment;
/**
 * Build comment for PR merge
 */
export declare function buildPRMergeComment(pr: PullRequest, commits: GitCommit[], repo: GitRepository): FormattedComment;
/**
 * Generate smart summary from commits
 */
export declare function generateSmartSummary(commits: GitCommit[], tasks: Task[]): string;
/**
 * Format comment for JIRA (converts markdown to JIRA markup)
 */
export declare function formatForJira(comment: FormattedComment): string;
/**
 * Format comment for Azure DevOps (HTML)
 */
export declare function formatForAdo(comment: FormattedComment): string;
/**
 * Validate comment size (some platforms have limits)
 */
export declare function validateCommentSize(comment: FormattedComment, maxLength?: number): boolean;
/**
 * Truncate comment if too long
 */
export declare function truncateComment(comment: FormattedComment, maxLength?: number): FormattedComment;
//# sourceMappingURL=comment-builder.d.ts.map