/*
 * Microsoft.ApplicationInsights, 3.3.7-nightly3.2505-07
 * Copyright (c) Microsoft and contributors. All rights reserved.
 *
 * Microsoft Application Insights Team
 * https://github.com/microsoft/ApplicationInsights-JS#readme
 *
 * ---------------------------------------------------------------------------
 * This is a single combined (rollup) declaration file for the package,
 * if you require a namespace wrapped version it is also available.
 * - Namespaced version: types/applicationinsights-debugplugin-js.namespaced.d.ts
 * ---------------------------------------------------------------------------
 */

import { BaseTelemetryPlugin } from '@microsoft/applicationinsights-core-js';
import { IAppInsightsCore } from '@microsoft/applicationinsights-core-js';
import { IConfiguration } from '@microsoft/applicationinsights-core-js';
import { IPlugin } from '@microsoft/applicationinsights-core-js';
import { IProcessTelemetryContext } from '@microsoft/applicationinsights-core-js';
import { ITelemetryItem } from '@microsoft/applicationinsights-core-js';
import { ITelemetryPluginChain } from '@microsoft/applicationinsights-core-js';

export declare class DebugPlugin extends BaseTelemetryPlugin {
    static identifier: string;
    identifier: string;
    constructor();
    initialize(config: IConfiguration | IDebugPluginConfig, core: IAppInsightsCore, extensions: IPlugin[], pluginChain?: ITelemetryPluginChain): void;
    processTelemetry(event: ITelemetryItem, itemCtx?: IProcessTelemetryContext): void;
}

declare interface IDebugPluginConfig extends IConfiguration {
    trackers?: string[];
    /**
     * The prefix to use for the css styles, defaults to 'ai'
     */
    cssPrefix?: string;
    /**
     * Disable listening to notifications from the notification manager. Defaults to false
     */
    disableNotifications?: boolean;
    /**
     * [Optional] Dump extra debug information to the console as well as the dashboard
     */
    dumpToConsole?: boolean;
    /**
     * [Optional] The maximum number of messages to retain, older messages will be dropped - defaults to 5,000.
     */
    maxMessages?: number;
    /**
     * [Optional] Flag for whether to include functions in the DebugPlugin dashboard. Defaults to false
     */
    showFunctions?: boolean;
    /**
     * [Optional] If processTelemetry is not included in the trackers should the DebugPlugin log the arguments - defaults to false
     */
    logProcessTelemetry?: boolean;
}

export { }
