import type * as rum from "@distilled.cloud/aws/rum"; import type * as Effect from "effect/Effect"; import * as Binding from "../../Binding.ts"; import type { AppMonitor } from "./AppMonitor.ts"; export interface PutRumEventsRequest extends Omit { /** * Details of the app monitor sending the events. Defaults to the bound * monitor's name and id. */ AppMonitorDetails?: rum.AppMonitorDetails; } /** * Runtime binding for `rum:PutRumEvents` — send a batch of telemetry events * from one user session to the bound {@link AppMonitor}'s data plane (the * same operation the RUM web client uses); the monitor id and details are * injected automatically. * * Provide `RUM.PutRumEventsHttp` on the hosting Lambda Function to satisfy * the requirement. * ### Sending RUM Events * **Example:** Send a Session's Events Server-Side * ```typescript * // init — grants rum:PutRumEvents on the monitor * const putRumEvents = yield* AWS.RUM.PutRumEvents(monitor); * * // runtime * yield* putRumEvents({ * BatchId: crypto.randomUUID(), * UserDetails: { userId, sessionId }, * RumEvents: [ * { * id: crypto.randomUUID(), * timestamp: new Date(), * type: "com.amazon.rum.session_start_event", * details: "{}", * }, * ], * }); * ``` * * @binding */ export interface PutRumEvents extends Binding.Service Effect.Effect<(request: PutRumEventsRequest) => Effect.Effect>> { } export declare const PutRumEvents: PutRumEvents; //# sourceMappingURL=PutRumEvents.d.ts.map