import { ExperimentAnalyticsEvent, ExperimentAnalyticsProvider } from '../types/analytics';
import { ExperimentUserProvider } from '../types/provider';
import { ExperimentUser } from '../types/user';
type AmplitudeIdentify = {
    set(property: string, value: unknown): void;
    unset(property: string): void;
};
type AmplitudeInstance = {
    options?: AmplitudeOptions;
    _ua?: AmplitudeUAParser;
    logEvent(eventName: string, properties: Record<string, string>): void;
    setUserProperties(userProperties: Record<string, unknown>): void;
    identify(identify: AmplitudeIdentify): void;
};
type AmplitudeOptions = {
    deviceId?: string;
    userId?: string;
    versionName?: string;
    language?: string;
    platform?: string;
};
type AmplitudeUAParser = {
    browser?: {
        name?: string;
        major?: string;
    };
    os?: {
        name?: string;
    };
};
/**
 * @deprecated Update your version of the amplitude analytics-js SDK to 8.17.0+ and for seamless
 * integration with the amplitude analytics SDK.
 */
export declare class AmplitudeUserProvider implements ExperimentUserProvider {
    private amplitudeInstance;
    constructor(amplitudeInstance: AmplitudeInstance);
    getUser(): ExperimentUser;
    private getOs;
    private getDeviceModel;
}
/**
 * @deprecated Update your version of the amplitude analytics-js SDK to 8.17.0+ and for seamless
 * integration with the amplitude analytics SDK.
 */
export declare class AmplitudeAnalyticsProvider implements ExperimentAnalyticsProvider {
    private readonly amplitudeInstance;
    constructor(amplitudeInstance: AmplitudeInstance);
    track(event: ExperimentAnalyticsEvent): void;
    setUserProperty(event: ExperimentAnalyticsEvent): void;
    unsetUserProperty(event: ExperimentAnalyticsEvent): void;
}
export {};
