export declare interface ReleaseNote {
  version: string
  date: string
  title: string
  body: string
  htmlUrl: string
  compareUrl?: string
  author?: string
  isPrerelease: boolean
  assets?: ReleaseAsset[]
}
export declare interface ReleaseAsset {
  name: string
  downloadUrl: string
  size: number
  contentType: string
}
export declare interface ChangelogEntry {
  version: string
  date: string
  changes: {
    added?: string[]
    changed?: string[]
    deprecated?: string[]
    removed?: string[]
    fixed?: string[]
    security?: string[]
  }
  notes?: string
}
export declare interface PackageInfo {
  name: string
  description?: string
  homepage?: string
  repository?: {
    type: string
    url: string
    directory?: string
  }
  license?: string
  author?: string | { name: string, email?: string, url?: string }
  keywords?: string[]
  weeklyDownloads?: number
  lastPublish?: string
  maintainers?: Array<{ name: string, email?: string }>
}
export declare class ReleaseNotesFetcher {
  readonly private userAgent: any;
  fetchPackageInfo(packageName: string, currentVersion: string, newVersion: string): Promise<{
    packageInfo: PackageInfo
    releaseNotes: ReleaseNote[]
    changelog: ChangelogEntry[]
    compareUrl?: string
  }>;
  private fetchNpmPackageInfo(packageName: string): Promise<PackageInfo>;
  private parseGitHubUrl(repositoryUrl: string): { owner: string, repo: string } | null;
  private fetchGitHubReleases(owner: string, repo: string, currentVersion: string, newVersion: string): Promise<ReleaseNote[]>;
  private fetchChangelog(owner: string, repo: string): Promise<ChangelogEntry[]>;
  private parseChangelog(content: string): ChangelogEntry[];
  private generateCompareUrl(owner: string, repo: string, fromVersion: string, toVersion: string): string;
  private isVersionBetween(version: string, current: string, target: string): boolean;
  generatePackageBadges(packageInfo: PackageInfo, currentVersion: string, newVersion: string): {
    age: string
    adoption: string
    passing: string
    confidence: string
  };
  fetchComposerPackageInfo(packageName: string): Promise<PackageInfo>;
  generateComposerBadges(packageInfo: PackageInfo, currentVersion: string, newVersion: string): {
    age: string
    adoption: string
    passing: string
    confidence: string
  };
  private normalizeVersionForBadges(version: string): string;
}