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

import type { IExperimentationTelemetry, ExperimentationService as TASClient, IKeyValueStorage } from 'tas-client-umd';
import { IConfigurationService } from '../../configuration/common/configuration.mjs';
import { IProductService } from '../../product/common/productService.mjs';
import { IAssignmentService } from './assignment.mjs';
export declare abstract class BaseAssignmentService implements IAssignmentService {
	private readonly getMachineId;
	protected readonly configurationService: IConfigurationService;
	protected readonly productService: IProductService;
	protected telemetry: IExperimentationTelemetry;
	private keyValueStorage?;
	_serviceBrand: undefined;
	protected tasClient: Promise<TASClient> | undefined;
	private networkInitialized;
	private overrideInitDelay;
	protected get experimentsEnabled(): boolean;
	constructor(
		getMachineId: () => Promise<string>,
		configurationService: IConfigurationService,
		productService: IProductService,
		telemetry: IExperimentationTelemetry,
		keyValueStorage?: IKeyValueStorage | undefined,
	);
	getTreatment<T extends string | number | boolean>(name: string): Promise<T | undefined>;
	private setupTASClient;
}
