import { Reader } from './reader/reader.js';
interface FetchResponse {
    arrayBuffer: () => Promise<ArrayBuffer>;
    headers: FetchResponseHeaders;
}
interface FetchResponseHeaders {
    get: (name: string) => string | null;
}
interface FetchOptions {
    method: 'GET' | 'HEAD';
    headers?: Record<string, string>;
}
type Fetch = (url: string, options: FetchOptions) => Promise<FetchResponse>;
/**
 * Reads a remote URL
 */
export declare class RemoteReader extends Reader {
    protected _url: string;
    protected _fetch: Fetch;
    /**
     * @param {string} url URL to retrieve
     * @param {function} fetch fetch() function implementation
     */
    constructor(url: string, fetch: Fetch);
    /** @inheritdoc */
    open(): Promise<void>;
    /** @inheritdoc */
    read(length: number, position: number): Promise<ArrayBuffer>;
}
export {};
//# sourceMappingURL=remoteReader.d.ts.map