import type { ITerminal } from '@rushstack/terminal'; import { type ICloudBuildCacheProvider, type RushSession } from '@rushstack/rush-sdk'; /** * @public */ export interface IAmazonS3BuildCacheProviderOptionsBase { s3Region: string; s3Prefix: string | undefined; isCacheWriteAllowed: boolean; } /** * Advanced options where user has the specify the full http endpoint * @public */ export interface IAmazonS3BuildCacheProviderOptionsAdvanced extends IAmazonS3BuildCacheProviderOptionsBase { s3Endpoint: string; } /** * Simple options where user only provides the bucket and the endpoint is automatically built * @public */ export interface IAmazonS3BuildCacheProviderOptionsSimple extends IAmazonS3BuildCacheProviderOptionsBase { s3Bucket: string; } export declare class AmazonS3BuildCacheProvider implements ICloudBuildCacheProvider { private readonly _options; private readonly _s3Prefix; private readonly _isCacheWriteAllowedByConfiguration; private __credentialCacheId; private _rushSession; get isCacheWriteAllowed(): boolean; private __s3Client; constructor(options: IAmazonS3BuildCacheProviderOptionsSimple | IAmazonS3BuildCacheProviderOptionsAdvanced, rushSession: RushSession); private get _s3Endpoint(); private get _credentialCacheId(); private _getS3ClientAsync; tryGetCacheEntryBufferByIdAsync(terminal: ITerminal, cacheId: string): Promise; trySetCacheEntryBufferAsync(terminal: ITerminal, cacheId: string, objectBuffer: Buffer): Promise; updateCachedCredentialAsync(terminal: ITerminal, credential: string): Promise; updateCachedCredentialInteractiveAsync(terminal: ITerminal): Promise; deleteCachedCredentialsAsync(terminal: ITerminal): Promise; } //# sourceMappingURL=AmazonS3BuildCacheProvider.d.ts.map