import { DevCycleClient } from './client';
import { DevCycleUser, DevCycleCloudClient as InternalDevCycleCloudClient, dvcDefaultLogger, DevCycleEvent, DVCVariableValue, JSON, DVCJSON, DVCCustomDataJSON, DVCVariable, DVCVariableSet, DVCVariableInterface, DVCFeature, DVCFeatureSet, DevCyclePlatformDetails } from '@devcycle/js-cloud-server-sdk';
import { DevCycleServerSDKOptions, VariableDefinitions } from '@devcycle/types';
import { DevCycleProvider } from './open-feature/DevCycleProvider';
declare class DevCycleCloudClient<Variables extends VariableDefinitions = VariableDefinitions> extends InternalDevCycleCloudClient<Variables> {
    private openFeatureProvider;
    private sdkPlatform?;
    constructor(sdkKey: string, options: DevCycleServerSDKOptions, platformDetails: DevCyclePlatformDetails);
    getOpenFeatureProvider(): Promise<DevCycleProvider>;
}
export { DevCycleProvider, DevCycleClient, DevCycleCloudClient, DevCycleUser, DevCycleServerSDKOptions as DevCycleOptions, DevCycleEvent, DVCVariableValue, JSON, DVCJSON, DVCCustomDataJSON, DVCVariable, DVCVariableSet, DVCVariableInterface, DVCFeature, DVCFeatureSet, };
export { dvcDefaultLogger };
/**
 * @deprecated Use DevCycleClient instead
 */
export type DVCClient = DevCycleClient;
/**
 * @deprecated Use DevCycleCloudClient instead
 */
export type DVCCloudClient = DevCycleCloudClient;
/**
 * @deprecated Use DevCycleUser instead
 */
export type DVCUser = DevCycleUser;
/**
 * @deprecated Use DevCycleEvent instead
 */
export type DVCEvent = DevCycleEvent;
/**
 * @deprecated Use DevCycleOptions instead
 */
export type DVCOptions = DevCycleServerSDKOptions;
import { ConfigSource } from '@devcycle/types';
export { ConfigSource };
export { UserError } from '@devcycle/types';
export type DevCycleOptionsCloudEnabled = DevCycleServerSDKOptions & {
    enableCloudBucketing: true;
};
export type DevCycleOptionsLocalEnabled = DevCycleServerSDKOptions & {
    enableCloudBucketing?: false;
    /**
     * Override the source to retrieve configuration from. Defaults to the DevCycle CDN
     */
    configSource?: ConfigSource;
};
export declare function initializeDevCycle<Variables extends VariableDefinitions = VariableDefinitions>(sdkKey: string, options?: DevCycleOptionsLocalEnabled): DevCycleClient<Variables>;
export declare function initializeDevCycle<Variables extends VariableDefinitions = VariableDefinitions>(sdkKey: string, options: DevCycleOptionsCloudEnabled): DevCycleCloudClient<Variables>;
export declare function initializeDevCycle<Variables extends VariableDefinitions = VariableDefinitions>(sdkKey: string, options?: DevCycleServerSDKOptions): DevCycleClient<Variables> | DevCycleCloudClient<Variables>;
/**
 * @deprecated Use initializeDevCycle instead
 */
export declare const initialize: typeof initializeDevCycle;
