import { type Interceptor, type StreamRequest, type UnaryRequest } from '@connectrpc/connect'; import { type Attributes } from '@opentelemetry/api'; type RpcRequest = UnaryRequest | StreamRequest; /** * Derives extra attributes from a request. The returned attributes land on both * the duration histogram and the client span, so they must stay * low-cardinality: no DIDs, keys or URIs, which would explode the metric series. */ type GetAttributes = (request: RpcRequest) => Attributes; /** * Records client-side telemetry for every outbound Connect RPC: an * `rpc.client.call.duration` histogram and a CLIENT span, with the trace * context injected into the request headers so the callee's spans join this * trace. * * The server half of a bsync call is recorded by `@atproto/bsync`'s * `withRpcServerTelemetry`, using the same attribute keys. */ export declare const createRpcClientInterceptor: (getAttributes?: GetAttributes) => Interceptor; export {}; //# sourceMappingURL=rpc.d.ts.map