import { AmplitudeBrowser } from '@amplitude/analytics-browser';
import { AmplitudeSessionReplay, SessionReplayOptions } from '@amplitude/plugin-session-replay-browser';
import { IExperimentClient, ExperimentPluginConfig } from '@amplitude/plugin-experiment-browser';
import { InitOptions } from '@amplitude/engagement-browser';
import { BrowserClient, BrowserOptions } from '@amplitude/analytics-core';
export interface UnifiedSharedOptions {
    serverZone?: 'US' | 'EU';
    instanceName?: string;
}
export type UnifiedOptions = UnifiedSharedOptions & {
    analytics?: BrowserOptions;
    sessionReplay?: Omit<SessionReplayOptions, keyof UnifiedSharedOptions>;
    experiment?: Omit<ExperimentPluginConfig, keyof UnifiedSharedOptions>;
    engagement?: Omit<InitOptions, keyof UnifiedSharedOptions>;
};
export interface UnifiedClient extends BrowserClient {
    initAll(apiKey: string, unifiedOptions?: UnifiedOptions): Promise<void>;
    sessionReplay(): AmplitudeSessionReplay;
    experiment(): IExperimentClient | undefined;
}
export declare class AmplitudeUnified extends AmplitudeBrowser implements UnifiedClient {
    private _sessionReplay;
    private _initAllPromise?;
    sessionReplay(): AmplitudeSessionReplay;
    experiment(): IExperimentClient | undefined;
    /**
     * Initialize SDKs with configuration options.
     *
     * @param apiKey Amplitude API key.
     * @param analyticsOptions Analytics configuration options. Refer to {@link https://amplitude.com/docs/sdks/analytics/browser/browser-sdk-2#configure-the-sdk here} for more info.
     * @param unifiedOptions Shared configuration for all SDKs and for blade SDKs.
     */
    initAll(apiKey: string, unifiedOptions?: UnifiedOptions): Promise<void>;
    /**
     * Only analytics SDK is initialized. Use initAll() instead to initialize all blade SDKs.
     */
    init(apiKey?: string, userIdOrOptions?: string | BrowserOptions, maybeOptions?: BrowserOptions): import("@amplitude/analytics-core").AmplitudeReturn<void>;
}
//# sourceMappingURL=unified.d.ts.map