export type OTelExporterType = 'otlp-grpc' | 'otlp-http' | 'console' | 'file';
export type OTelEnabledVia = 'envVar' | 'setting' | 'otlpEndpointEnvVar' | 'dbSpanExporterOnly' | 'disabled';
/** Default OTLP endpoint used when no env var or setting overrides it. */
export declare const DEFAULT_OTLP_ENDPOINT = "http://localhost:4318";
export interface OTelConfig {
    readonly enabled: boolean;
    /** True when OTel was enabled via setting/env var, not just implied by dbSpanExporter. */
    readonly enabledExplicitly: boolean;
    /** How OTel was enabled — used for telemetry to track adoption channels. */
    readonly enabledVia: OTelEnabledVia;
    readonly exporterType: OTelExporterType;
    readonly otlpEndpoint: string;
    readonly otlpProtocol: 'grpc' | 'http';
    readonly captureContent: boolean;
    /**
     * Maximum size (in characters) for free-form content attributes (prompts,
     * tool args, etc.). A value of `0` disables truncation entirely (the
     * default), matching the OTel spec's `AttributeValueLengthLimit` default of
     * `Infinity`. Set to a positive value when targeting backends that cap
     * per-attribute size to keep OTLP batches under the backend limit; consult
     * the backend's documentation for the appropriate value.
     */
    readonly maxAttributeSizeChars: number;
    readonly fileExporterPath?: string;
    readonly dbSpanExporter: boolean;
    readonly logLevel: 'trace' | 'debug' | 'info' | 'warn' | 'error';
    readonly httpInstrumentation: boolean;
    readonly serviceName: string;
    readonly serviceVersion: string;
    readonly sessionId: string;
    readonly resourceAttributes: Record<string, string>;
}
export interface OTelConfigInput {
    env: Record<string, string | undefined>;
    settingEnabled?: boolean;
    settingExporterType?: OTelExporterType;
    settingOtlpEndpoint?: string;
    settingCaptureContent?: boolean;
    settingMaxAttributeSizeChars?: number;
    settingOutfile?: string;
    settingDbSpanExporter?: boolean;
    extensionVersion: string;
    sessionId: string;
    vscodeTelemetryLevel?: string;
}
/**
 * Resolve OTel configuration with layered precedence:
 * 1. COPILOT_OTEL_* env vars (highest)
 * 2. OTEL_EXPORTER_OTLP_* standard env vars
 * 3. VS Code settings
 * 4. Defaults (lowest)
 */
export declare function resolveOTelConfig(input: OTelConfigInput): OTelConfig;
//# sourceMappingURL=otelConfig.d.ts.map