import { ServiceCallType, Tap, TapResponse } from '@iotize/tap';
import '@iotize/tap/service/impl/interface';
import { Observable } from 'rxjs';
export declare const DEFAULT_TAP_REQUEST_MAX_SIZE_OPTIONS: {
    maxRequestByteSize: number;
    maxResponseByteSize: number;
};
export interface FixedResponseBodySizeServiceCall<BodyType, ReturnType> {
    call: ServiceCallType<BodyType, ReturnType>;
    responseBodySize: number;
}
export declare function computeTapRequestCallSize(chunk: ServiceCallType): number;
export declare function createSingleChunkMultiTapRequestCalls(calls: FixedResponseBodySizeServiceCall<unknown, unknown>[], index?: number, { maxResponseByteSize, maxRequestByteSize, }?: {
    maxResponseByteSize: number;
    maxRequestByteSize: number;
}): {
    calls: ServiceCallType<any, any>[];
    nextIndex: number;
} | {
    nextIndex: undefined;
    calls: ServiceCallType<any, any>[];
};
export declare function chunkMultiTapRequestCalls(calls: FixedResponseBodySizeServiceCall<unknown, unknown>[], options?: {
    maxRequestByteSize: number;
    maxResponseByteSize: number;
}): ServiceCallType[][];
export declare function createMultiTapRequestCallChuncksExecutor(tap: Tap, chunks: ServiceCallType[][]): Observable<{
    index: number;
    responses: TapResponse<unknown>[];
}>;
