/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import type { IExtendedTelemetryItem, ITelemetryItem, ITelemetryUnloadState } from '@microsoft/1ds-core-js';
import type { IXHROverride } from '@microsoft/1ds-post-js';
import { ITelemetryAppender } from './telemetryUtils.mjs';
export interface IAppInsightsCore {
	pluginVersionString: string;
	track(item: ITelemetryItem | IExtendedTelemetryItem): void;
	unload(isAsync: boolean, unloadComplete: (unloadState: ITelemetryUnloadState) => void): void;
}
export declare abstract class AbstractOneDataSystemAppender implements ITelemetryAppender {
	private readonly _isInternalTelemetry;
	private _eventPrefix;
	private _defaultData;
	private _xhrOverride?;
	protected _aiCoreOrKey: IAppInsightsCore | string | undefined;
	private _asyncAiCore;
	protected readonly endPointUrl = 'https://mobile.events.data.microsoft.com/OneCollector/1.0';
	protected readonly endPointHealthUrl = 'https://mobile.events.data.microsoft.com/ping';
	constructor(
		_isInternalTelemetry: boolean,
		_eventPrefix: string,
		_defaultData: {
			[key: string]: any;
		} | null,
		iKeyOrClientFactory: string | (() => IAppInsightsCore), // allow factory function for testing
		_xhrOverride?: IXHROverride | undefined,
	);
	private _withAIClient;
	log(eventName: string, data?: any): void;
	flush(): Promise<any>;
}
