import { CredentialsOptions } from 'aws-sdk/lib/credentials';
import { CommonPrefixList, ObjectList } from 'aws-sdk/clients/s3';
import { GetObjectRequest, GetObjectOutput } from 'aws-sdk/clients/s3';
import { Channel, CLI, S3Manifest, ServiceAvailability } from './types';
export declare const BASE_URL = "https://developer.salesforce.com";
export declare type GetObjectOption = Omit<GetObjectRequest, 'Bucket'>;
export declare type AmazonS3Options = {
    bucket?: string;
    cli?: CLI;
    channel?: Channel;
    baseUrl?: string;
    credentials?: CredentialsOptions;
    baseKey?: string;
};
export declare class AmazonS3 {
    private options;
    static STATUS_URL: string;
    directory: string;
    private s3;
    private baseKey;
    constructor(options: AmazonS3Options);
    ping(): Promise<ServiceAvailability>;
    fileIsAvailable(url: string): Promise<ServiceAvailability>;
    download(url: string, location: string, silent?: boolean): Promise<void>;
    getManifestFromChannel(channel: string): Promise<S3Manifest>;
    getManifestFromVersion(version: string, sha: string): Promise<S3Manifest>;
    getFileAtUrl(url: string): Promise<string>;
    getObject(options: GetObjectOption): Promise<GetObjectOutput>;
    listCommonPrefixes(key: string): Promise<CommonPrefixList>;
    listKeyContents(key: string, filter?: (entry: any) => boolean): Promise<ObjectList[]>;
    private resolveCredentials;
}
