import Core from './src/core/Core';
import BalancerOptions from './src/balancer/Utils/Options';
import DiagnosticTool from './src/diagnostic/DiagnosticTool';
import AppAnalytics from './src/appAnalytics/AppAnalytics';
import { LogLevel } from './src/common/log';
import Adapter from './src/analytics/adapter/videoAdapter';
import AdsAdapter from './src/analytics/adapter/adsAdapter';
export default class UnifiedPlugin {
    core: Core;
    private proBalancer;
    private videoAnalytics;
    appAnalytics: AppAnalytics;
    plugin: any;
    diagnostic: DiagnosticTool;
    constructor(accountCode: string);
    destroy(): void;
    /**
     * Changes the log level of the Unified Plugin. See {@link LogLevel} for the different levels available
     *
     * @param logLevel Log level to be used
     */
    setLogLevel(logLevel: LogLevel): void;
    /**
     * Sets Balancer options. See {@link BalancerOptions}.
     * @param options Balancer options
     */
    setBalancerOptions(options: BalancerOptions): void;
    /**
     * Sets the manifest URL of the played content in the Balancer options object.
     * For url changes the loader is restarted.
     * @param url Manifest url of the content being played.
     * @public
     */
    setManifestResource(url: string): void;
    /**
     * Adds an interceptor to the Balancer
     * @param name Name of the interceptor
     * @param player Video player object
     */
    addInterceptor(name: string, player: any): void;
    /**
     * Returns Bitmovin configuration for request interception
     */
    getBitmovinSendHttpRequest(): (type: any, request: any) => {
        getResponse(): Promise<unknown>;
        cancel(): void;
        setProgressListener(): void;
    };
    /**
     * Returns the manifest/video URL to be used following the Selector API.
     * If an error occurs this will return undefined
     */
    getRecommendedManifest(): Promise<string>;
    /**
     * Register a video player within the Video Analytics module
     * If there already is a registered ads adapter, it is removed first.
     *
     * @param player Video player instance
     * @param adapterJsonCode JSON code with the adapter configuration
     * @param options Analytics options
     * @param videoKey Custom video identifier
     * @param callback Callback to be called after the adapter is registered
     */
    registerAdapter(player: any, adapterUrl: string, options?: any, videoKey?: string, callback?: () => void): void;
    /**
     * Registers a barebones player adapter without any intrinsic behavior within the Video Analytics module.
     * If there already is a registered ads adapter, it is removed first.
     *
     * @param videoKey Custom video identifier
     * @param options Analytics options
     */
    registerDefaultAdapter(videoKey?: string, options?: any): void;
    /**
     * Removes a registered video adapter. Optionally, a video identifier can be passed.
     *
     * @param videoKey Custom video identifier
     */
    removeAdapter(videoKey?: string): void;
    /**
     * Returns the registered player adapter. Optionally, a video identifier can be passed.
     *
     * @param videoKey Custom video identifier
     */
    getAdapter(videoKey?: string): Adapter;
    /**
     * Returns the registered ads adapter. Optionally, a video identifier can be passed.
     *
     * @param videoKey Custom video identifier
     */
    getAdsAdapter(videoKey?: string): AdsAdapter;
    /**
     * Register an ads player within the Ads Analytics module.
     * If there already is a registered ads adapter, it is removed first.
     *
     * @param player Ads player/manager
     * @param adapterJsonCode JSON code with the adapter configuration
     * @param options Analytics options
     * @param videoKey Custom video identifier
     */
    registerAdsAdapter(player: any, adapterUrl: string, options?: any, videoKey?: string, callback?: () => void): void;
    /**
     * Registers a barebones ads adapter without any intrinsic behavior within the Video Analytics module.
     * If there already is a registered ads adapter, it is removed first.
     *
     * @param videoKey Custom video identifier
     * @param options Analytics options
     */
    registerDefaultAdsAdapter(videoKey?: string, options?: any): void;
    /**
     * Removes a registered ads adapter. Optionally, a video identifier can be passed.
     *
     * @param videoKey Custom video identifier
     */
    removeAdsAdapter(videoKey?: string): void;
    /**
     * Sets Analytics options. See {@link npaw.Options.setOptions}.
     *
     * @param options Analytics options object
     * @param videoKey Custom video identifier
     */
    setAnalyticsOptions(options: any, videoKey?: string): void;
    private registerAdapterInModule;
}
