import { CompressionAlgorithm, OTLPExporterBase } from '@opentelemetry/otlp-exporter-base';
import { ExportResult } from '@opentelemetry/core';
import { ISerializer } from '@opentelemetry/otlp-transformer';
/**
 * Base class for AWS OTLP exporters
 */
export declare abstract class OTLPAwsBaseExporter<Payload, Response> extends OTLPExporterBase<Payload> {
    protected parentExporter: OTLPExporterBase<Payload>;
    private readonly compression?;
    private endpoint;
    private serializer;
    private authenticator;
    private parentSerializer;
    constructor(endpoint: string, service: string, parentExporter: OTLPExporterBase<Payload>, parentSerializer: ISerializer<Payload, Response>, compression?: CompressionAlgorithm);
    /**
     * Overrides the upstream implementation of export.
     * All behaviors are the same except if the endpoint is an AWS OTLP endpoint, we will sign the request with SigV4
     * in headers before sending it to the endpoint.
     * @param items - Array of signal data to export
     * @param resultCallback - Callback function to handle export result
     */
    export(items: Payload, resultCallback: (result: ExportResult) => void): Promise<void>;
    shutdown(): Promise<void>;
    forceFlush(): Promise<void>;
}
//# sourceMappingURL=otlp-aws-base-exporter.d.ts.map