/// <reference types="node" />
import { ReadResult } from 'file-disk';
import { Metadata } from './metadata';
import { SourceDestination } from './source-destination';
declare type Name = 'balena' | 'resin';
export declare class BalenaS3Source extends SourceDestination {
    readonly bucket: string;
    readonly deviceType: string;
    readonly version: string;
    readonly host: string;
    private rawSource;
    private zipSource;
    private ready;
    private names;
    name: Name;
    constructor(bucket: string, deviceType: string, version: string, host?: string);
    private prepare;
    private getName;
    canCreateReadStream(): Promise<boolean>;
    canRead(): Promise<boolean>;
    private getUrl;
    read(buffer: Buffer, bufferOffset: number, length: number, sourceOffset: number): Promise<ReadResult>;
    createReadStream(...args: any[]): Promise<NodeJS.ReadableStream>;
    protected _getMetadata(): Promise<Metadata>;
    protected _open(): Promise<void>;
    protected _close(): Promise<void>;
}
export {};
