import { InstrumentationConfig } from '@apm-js-collab/code-transformer';

interface LegacyBundlerPluginOptions {
    /**
     * Enable debug logging
     */
    debug?: boolean;
    /**
     * Additional instrumentation configs to apply
     */
    instrumentations?: InstrumentationConfig[];
    /**
     * Whether to bundle for browser environments.
     *
     * When true, uses 'dc-browser' for browser-compatible diagnostics_channel polyfill.
     * When false, uses Node.js built-in 'diagnostics_channel' and 'async_hooks'.
     * Defaults to true (assumes browser build).
     */
    browser?: boolean;
}
interface BundlerPluginOptions {
    /**
     * Enable debug logging
     */
    debug?: boolean;
    /**
     * Additional instrumentation configs to apply
     */
    instrumentations?: InstrumentationConfig[];
    /**
     * Use the `diagnostics_channel` compatibility shim in patched code instead
     * of Node.js's built-in `diagnostics_channel` module.
     *
     * Enable this for browser, edge, or worker bundles where Node's
     * `diagnostics_channel` module is unavailable. Leave it disabled for Node.js
     * bundles so transformed SDK code publishes on the native `diagnostics_channel`
     * registry.
     *
     * @default false
     */
    useDiagnosticChannelCompatShim?: boolean;
}

export type { BundlerPluginOptions as B, LegacyBundlerPluginOptions as L };
