import { AwsCredentialIdentityProvider, AwsCredentialIdentity, HttpResponse, HeaderBag } from '@aws-sdk/types'; import { HttpHandler, HttpRequest } from '@smithy/protocol-http'; import { AppMonitorDetails, PutRumEventsRequest, UserDetails } from './dataplane'; import { CompressionStrategy } from '../orchestration/config'; declare type SerializedRumEvent = { id: string; timestamp: number; type: string; metadata?: string; details: string; }; declare type SerializedPutRumEventsRequest = { BatchId: string; AppMonitorDetails: AppMonitorDetails; UserDetails: UserDetails; SessionMetadata?: string; RumEvents: SerializedRumEvent[]; Alias?: string; }; export declare type DataPlaneClientConfig = { fetchRequestHandler: HttpHandler; beaconRequestHandler: HttpHandler; endpoint: URL; region: string; credentials: AwsCredentialIdentityProvider | AwsCredentialIdentity | undefined; headers?: HeaderBag; compressionStrategy?: CompressionStrategy; }; /** * Signs an HttpRequest and returns the signed request. */ export type RequestSigner = (request: HttpRequest) => Promise; /** * Pre-signs an HttpRequest (for beacon/query-string signing) and returns the signed request. */ export type RequestPresigner = (request: HttpRequest) => Promise; /** * Computes a content hash for the given payload. */ export type ContentHasher = (payload: string | Uint8Array) => Promise; export declare type SigningConfig = { sign: RequestSigner; presign: RequestPresigner; hashAndEncode: ContentHasher; }; export declare class DataPlaneClient { private config; private signing?; constructor(config: DataPlaneClientConfig, signing?: SigningConfig); sendFetch: (putRumEventsRequest: PutRumEventsRequest) => Promise<{ response: HttpResponse; }>; sendBeacon: (putRumEventsRequest: PutRumEventsRequest) => Promise<{ response: HttpResponse; }>; private getHttpRequestOptions; } export declare const serializeRequest: (request: PutRumEventsRequest) => SerializedPutRumEventsRequest; export {};