import type * as api from '@opentelemetry/api';
import { InstrumentationConfig } from '@opentelemetry/instrumentation';
export interface SpanConnectionConfig {
    serviceName?: string;
    connectString?: string;
    hostName?: string;
    port?: number;
    user?: string;
    protocol?: string;
    instanceName?: string;
    serverMode?: string;
    pdbName?: string;
    poolMin?: number;
    poolMax?: number;
    poolIncrement?: number;
}
export interface OracleRequestHookInformation {
    inputArgs: any;
    connection: SpanConnectionConfig;
}
export interface OracleInstrumentationExecutionRequestHook {
    (span: api.Span, queryInfo: OracleRequestHookInformation): void;
}
export interface OracleResponseHookInformation {
    data: any;
}
export interface OracleInstrumentationExecutionResponseHook {
    (span: api.Span, resultInfo: OracleResponseHookInformation): void;
}
export interface OracleInstrumentationConfig extends InstrumentationConfig {
    /**
     * If true, an attribute containing the execute method
     * bind values will be attached the spans generated.
     * It can potentially record PII data and should be used with caution.
     *
     * @default false
     */
    enhancedDatabaseReporting?: boolean;
    /**
     * If true, db.statement will have sql which could potentially contain
     * sensitive unparameterized data in the spans generated.
     *
     * @default false
     */
    dbStatementDump?: boolean;
    /**
     * Hook that allows adding custom span attributes or updating the
     * span's name based on the data about the query to execute.
     *
     * @default undefined
     */
    requestHook?: OracleInstrumentationExecutionRequestHook;
    /**
     * Hook that allows adding custom span attributes based on the data
     * returned from "execute" actions.
     *
     * @default undefined
     */
    responseHook?: OracleInstrumentationExecutionResponseHook;
    /**
     * If true, requires a parent span to create new spans.
     *
     * @default false
     */
    requireParentSpan?: boolean;
    /**
     * Automatic propagation of trace context using V$SESSION.ACTION.
     *
     * @default false
     */
    propagateTraceContextToSessionAction?: boolean;
}
//# sourceMappingURL=types.d.ts.map