import { Callback } from '@verdaccio/types'; import { Config } from '@verdaccio/types'; import { Logger } from '@verdaccio/types'; import { Package } from '@verdaccio/types'; import { ReadPackageCallback } from '@verdaccio/types'; import { ReadTarball } from '@verdaccio/streams'; import { S3Client } from '@aws-sdk/client-s3'; import { searchUtils } from '@verdaccio/core'; import { Token } from '@verdaccio/types'; import { TokenFilter } from '@verdaccio/types'; import { UploadTarball } from '@verdaccio/streams'; declare interface S3Config extends Config { bucket: string; keyPrefix: string; endpoint?: string; region?: string; s3ForcePathStyle?: boolean; tarballACL?: string; accessKeyId?: string; secretAccessKey?: string; sessionToken?: string; proxy?: string; dynamoTableName: string; dynamoEndpoint?: string; dynamoRegion?: string; } declare class S3Database { logger: Logger; config: S3Config; private s3; private database; constructor(config: Config, options: { logger: Logger; config: Config; }); init(): Promise; getSecret(): Promise; setSecret(secret: string): Promise; add(name: string, callback: Callback): void; remove(name: string, callback: Callback): void; get(callback: Callback): void; /** * Search packages. Verdaccio 6/7 calls this with callback pattern: search(onPackage, onEnd). * Newer versions may call with search(query): Promise. * We support both signatures. */ search(...args: any[]): any; filterByQuery(_results: searchUtils.SearchItemPkg[], _query: searchUtils.SearchQuery): Promise; getScore(_pkg: searchUtils.SearchItemPkg): Promise; getPackageStorage(packageName: string): S3PackageManager; saveToken(token: Token): Promise; deleteToken(user: string, tokenKey: string): Promise; readTokens(filter: TokenFilter): Promise; } export { S3Database } export default S3Database; export declare class S3PackageManager { config: S3Config; logger: Logger; private readonly packageName; private readonly s3; private readonly packagePath; private readonly tarballACL; constructor(config: S3Config, packageName: string, logger: Logger, s3: S3Client); updatePackage(name: string, updateHandler: Callback, onWrite: Callback, transformPackage: (pkg: Package) => Package, onEnd: Callback): void; private _getData; deletePackage(fileName: string, callback: Callback): void; removePackage(callback: (err: Error | null) => void): void; createPackage(name: string, value: Package, callback: (err: Error | null) => void): void; savePackage(name: string, value: Package, callback: (err: Error | null) => void): void; readPackage(name: string, callback: ReadPackageCallback): void; writeTarball(name: string): UploadTarball; readTarball(name: string): ReadTarball; } export { }