import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as ServiceMap from "effect/Context"; import * as HttpClient from "effect/unstable/http/HttpClient"; import type { TelemetryMode } from "./mode.js"; export type TelemetryPropertyValue = string | number | boolean | null; export type TelemetryProperties = Record; export type TelemetryErrorClass = "internal" | "user" | "external"; export interface TelemetryClientService { readonly trackEvent: (event: string, properties?: TelemetryProperties, options?: { /** Await the send (bounded) so the event lands before process exit. */ readonly bounded?: boolean; }) => Effect.Effect; readonly reportError: (error: { readonly name: string; readonly message: string; readonly details?: ReadonlyArray; readonly category?: string; readonly level: "error" | "fatal"; readonly errorClass: TelemetryErrorClass; readonly handled: boolean; readonly command: string; }) => Effect.Effect; } export interface TelemetryClientOptions { readonly mode: TelemetryMode; readonly command: string; readonly client: { readonly name: string; readonly version: string; }; } declare const TelemetryClient_base: ServiceMap.ServiceClass; export declare class TelemetryClient extends TelemetryClient_base { } export declare const TelemetryClientTest: Layer.Layer; export declare const TELEMETRY_EVENT_TIMEOUT = "250 millis"; export declare const makeTelemetryClient: (options: TelemetryClientOptions) => Effect.Effect; export declare const TelemetryClientLive: (options: TelemetryClientOptions) => Layer.Layer; export {}; //# sourceMappingURL=client.d.ts.map