import type { BuddyBotConfig, PackageMetadata, PackageUpdate } from '../types';
import type { Logger } from '../utils/logger';
export declare interface BunOutdatedResult {
  name: string
  current: string
  update: string
  latest: string
  workspace?: string
  file?: string
}
export declare class RegistryClient {
  constructor(projectPath: string, logger: Logger, config?: BuddyBotConfig | undefined);
  shouldRespectVersion(version: string): boolean;
  getOutdatedPackages(filter?: string): Promise<PackageUpdate[]>;
  getUpdatesForPackages(packageNames: string[]): Promise<PackageUpdate[]>;
  getUpdatesWithPattern(pattern: string): Promise<PackageUpdate[]>;
  getPackageMetadata(packageName: string): Promise<PackageMetadata | undefined>;
  packageExists(packageName: string): Promise<boolean>;
  getLatestVersion(packageName: string): Promise<string | null>;
  getUpdatesForWorkspace(workspaceName: string): Promise<PackageUpdate[]>;
  searchPackages(query: string, limit?: number): Promise<Array<{
    name: string
    version: string
    description?: string
    keywords?: string[]
  }>>;
  getComposerOutdatedPackages(): Promise<PackageUpdate[]>;
  getComposerPackageMetadata(packageName: string): Promise<PackageMetadata | undefined>;
  composerPackageExists(packageName: string): Promise<boolean>;
  getComposerLatestVersion(packageName: string): Promise<string | null>;
  getPackageVersionReleaseDate(packageName: string, version: string): Promise<Date | null>;
  getGitHubActionReleaseDate(actionName: string, version: string): Promise<Date | null>;
  getComposerPackageReleaseDate(packageName: string, version: string): Promise<Date | null>;
  getDockerImageReleaseDate(imageName: string, version: string): Promise<Date | null>;
  meetsMinimumReleaseAge(packageName: string, version: string, dependencyType?: string): Promise<boolean>;
}
