import { DashboardGenerator } from './dashboard/dashboard-generator'; import { GitHubProvider } from './git/github-provider'; import { Logger } from './utils/logger'; import { PackageScanner } from './scanner/package-scanner'; import { RegistryClient } from './registry/registry-client'; import type { BuddyBotConfig, DashboardData, Issue, PackageFile, PackageUpdate, PullRequest, UpdateGroup, UpdateScanResult, } from './types'; export declare class Buddy { readonly private logger: Logger; readonly private scanner: PackageScanner; readonly private registryClient: RegistryClient; readonly private dashboardGenerator: DashboardGenerator; private readonly config: BuddyBotConfig; private readonly projectPath?: string; constructor(config: BuddyBotConfig, projectPath?: string); scanForUpdates(): Promise; createPullRequests(scanResult: UpdateScanResult): Promise; private shouldRespectVersion(version: string): boolean; private checkDependencyFilesForUpdates(packageFiles: PackageFile[]): Promise; private checkGitHubActionsForUpdates(packageFiles: PackageFile[]): Promise; private checkDockerfilesForUpdates(packageFiles: PackageFile[]): Promise; private getUpdateType(current: string, latest: string): 'major' | 'minor' | 'patch'; private isNewerVersion(current: string, latest: string): boolean; generateAllFileUpdates(updates: PackageUpdate[]): Promise>; run(): Promise; checkPackages(packageNames: string[]): Promise; checkPackagesWithPattern(pattern: string): Promise; private filterUpdatesByStrategy(updates: PackageUpdate[], strategy: 'major' | 'minor' | 'patch' | 'all'): PackageUpdate[]; private filterUpdatesByMinimumReleaseAge(updates: PackageUpdate[]): Promise; private groupUpdatesByConfig(updates: PackageUpdate[]): UpdateGroup[]; private getHighestUpdateType(updates: PackageUpdate[]): 'major' | 'minor' | 'patch'; private isSimilarPRTitle(existingTitle: string, newTitle: string): boolean; private checkIfUpdatesMatch(existingPRBody: string, newUpdates: PackageUpdate[]): boolean; private generatePRLabels(group: UpdateGroup): string[]; private shouldAutoClosePR(existingPR: PullRequest, _newUpdates: PackageUpdate[]): boolean; private shouldAutoCloseForRespectLatest(existingPR: PullRequest): boolean; private shouldAutoCloseForIgnorePaths(existingPR: PullRequest): boolean; private shouldAutoCloseForRemovedFiles(existingPR: PullRequest): boolean; private extractFilePathsFromPRBody(prBody: string): string[]; private extractPackagesFromPRBody(prBody: string): string[]; private extractPackageUpdatesFromPRBody(body: string): Array<{ name: string, currentVersion: string, newVersion: string }>; getConfig(): BuddyBotConfig; getProjectPath(): string; checkAndCloseObsoletePRs(gitProvider: GitHubProvider, dryRun?: boolean): Promise; checkAndCloseSatisfiedPRs(gitProvider: GitHubProvider, dryRun?: boolean): Promise; private generateCloseReason(pr: PullRequest): string; createOrUpdateDashboard(): Promise; private collectDashboardData(gitProvider: GitHubProvider): Promise; private findExistingDashboard(gitProvider: GitHubProvider, issueNumber?: number): Promise; }