/**
 * ClientObservabilityProxy implementation for @mastra/observability.
 *
 * Handles the two halves of the client observability flow:
 *
 *  - `inject(parentSpan)` (called from request 1) — produces the W3C
 *    carrier the server attaches to the outgoing chunk so the client
 *    SDK can extract it and parent its child spans/logs correctly.
 *
 *  - `receive(payload, parentContext)` (called from request 2 when the
 *    client returns) — decodes the OTLP/JSON payload the client sent
 *    back, validates that it actually belongs to the parent trace
 *    identified by `parentContext`, and forwards each span/log into
 *    the observability bus so existing exporters pick them up.
 */
import type { IMastraLogger } from '@mastra/core/logger';
import type { ClientObservabilityProxy, ObservabilityInstance } from '@mastra/core/observability';
/**
 * Hard caps. A misbehaving client could ship arbitrary OTLP; reject
 * payloads that blow past these limits to keep the server safe.
 */
export interface ClientObservabilityProxyLimits {
    /** Maximum number of spans accepted per receive call. */
    maxSpans: number;
    /** Maximum number of log records accepted per receive call. */
    maxLogs: number;
    /** Maximum total payload size in bytes (JSON.stringify length). */
    maxPayloadBytes: number;
}
export declare const DEFAULT_LIMITS: ClientObservabilityProxyLimits;
export interface CreateClientObservabilityProxyOptions {
    /**
     * Resolves the observability instance to forward into. Called per
     * `receive()` so config selection works the same way as for
     * server-side spans. Returning `undefined` causes the payload to be
     * dropped silently.
     */
    resolveInstance: () => ObservabilityInstance | undefined;
    /** Logger for warnings about dropped/rejected payloads. */
    logger?: IMastraLogger;
    limits?: Partial<ClientObservabilityProxyLimits>;
}
export declare function createClientObservabilityProxy(options: CreateClientObservabilityProxyOptions): ClientObservabilityProxy;
//# sourceMappingURL=proxy.d.ts.map