import { type IRangeRequestClient, type IRangeRequestResponse } from '@tokenizer/range';
import { type S3Client, type GetObjectRequest, type GetObjectCommandOutput } from '@aws-sdk/client-s3';
type ByteRangeRequest = [number, number];
/**
 * Use S3-client to execute actual HTTP-requests.
 */
export declare class S3Request implements IRangeRequestClient {
    private s3;
    private objRequest;
    private readonly abortController;
    constructor(s3: S3Client, objRequest: GetObjectRequest);
    /**
     * Concatenate given array of Uint8Arrays
     * @param arrays Array of Uint8Arrays
     */
    private static mergeUint8Arrays;
    buildArrayBuffer(response: GetObjectCommandOutput): Promise<Uint8Array>;
    getResponse(method: string | undefined, range: ByteRangeRequest): Promise<IRangeRequestResponse>;
    /**
     * Do a ranged request
     * @param range Range request
     */
    getRangedRequest(range: ByteRangeRequest): Promise<GetObjectCommandOutput>;
    abort(): void;
}
export {};
