import { MergeMethod, SyncOptions } from '../types'; import { Issue, IssueOptions } from './Issue'; export interface PullRequestOptions extends IssueOptions { headRef?: string; baseRef?: string; merged?: boolean; mergedAt?: Date | null; mergeable?: boolean; draft?: boolean; additions?: number; deletions?: number; changedFiles?: number; } export declare class PullRequest extends Issue { /** * Source branch ref */ headRef: string; /** * Target branch ref */ baseRef: string; /** * Whether the PR has been merged */ merged: boolean; /** * When the PR was merged */ mergedAt: Date | null; /** * Whether the PR can be merged */ mergeable: boolean; /** * Whether this is a draft PR */ draft: boolean; /** * Lines added */ additions: number; /** * Lines deleted */ deletions: number; /** * Number of files changed */ changedFiles: number; constructor(options?: PullRequestOptions); /** * Sync PR data from the provider * * @param options - Sync options * @returns This PR with updated fields */ sync(options?: SyncOptions): Promise; /** * AI-powered: Generate a summary of PR changes * * @returns Summary of what this PR does */ summarize(): Promise; /** * Merge this pull request * * @param method - Merge method (merge, squash, rebase) */ merge(method?: MergeMethod): Promise; /** * Mark this draft PR as ready for review */ markReady(): Promise; /** * Convert this PR back to draft */ convertToDraft(): Promise; /** * Request review from specified users * * @param reviewers - User logins to request review from */ requestReviewers(reviewers: string[]): Promise; /** * Find related issue for this PR * * @returns Related Issue or null */ findLinkedIssue(): Promise; /** * AI-powered: Check if this PR is ready to merge * * @returns True if the PR appears ready */ isReadyToMerge(): Promise; /** * AI-powered: Suggest reviewers based on changed files * * @returns Array of suggested reviewer logins */ suggestReviewers(): Promise; /** * Get PR URL */ getUrl(): string; /** * Get the change size classification * * @returns Size classification (xs, s, m, l, xl) */ getChangeSize(): 'xs' | 's' | 'm' | 'l' | 'xl'; } //# sourceMappingURL=PullRequest.d.ts.map