/// <reference types="node" />
import { GenericFilehandle, FilehandleOptions, Stats, PolyfilledResponse } from './filehandle';
export default class RemoteFile implements GenericFilehandle {
    protected url: string;
    protected auth: any;
    private _stat?;
    private fetchImplementation;
    private baseOverrides;
    private getBufferFromResponse;
    constructor(source: string, opts?: FilehandleOptions);
    fetch(input: RequestInfo, init: RequestInit | undefined): Promise<PolyfilledResponse>;
    read(buffer: Buffer, offset: number | undefined, length: number, position?: number, opts?: FilehandleOptions): Promise<{
        bytesRead: number;
        buffer: Buffer;
    }>;
    readFile(): Promise<Buffer>;
    readFile(options: BufferEncoding): Promise<string>;
    readFile<T extends undefined>(options: Omit<FilehandleOptions, 'encoding'> | (Omit<FilehandleOptions, 'encoding'> & {
        encoding: T;
    })): Promise<Buffer>;
    readFile<T extends BufferEncoding>(options: Omit<FilehandleOptions, 'encoding'> & {
        encoding: T;
    }): Promise<string>;
    readFile<T extends BufferEncoding>(options: Omit<FilehandleOptions, 'encoding'> & {
        encoding: T;
    }): T extends BufferEncoding ? Promise<Buffer> : Promise<Buffer | string>;
    stat(): Promise<Stats>;
    close(): Promise<void>;
}
