import { QonversionConfig } from './QonversionConfig';
import { QonversionApi } from './QonversionApi';
import { SKProduct } from './SKProduct';
import { SKProductDiscount } from './SKProductDiscount';
import { SKSubscriptionPeriod } from './SKSubscriptionPeriod';
import { SkuDetails } from './SkuDetails';
import { ActionResult } from './ActionResult';
import { AutomationsEvent } from './AutomationsEvent';
import { Entitlement } from './Entitlement';
import { ActionResultType, AttributionProvider, AutomationsEventType, EntitlementGrantType, EntitlementRenewState, EntitlementsCacheLifetime, EntitlementSource, Environment, ExperimentGroupType, IntroEligibilityStatus, LaunchMode, PricingPhaseRecurrenceMode, PricingPhaseType, ProductType, PurchaseUpdatePolicy, QonversionErrorCode, ScreenPresentationStyle, TransactionEnvironment, TransactionOwnershipType, TransactionType, UserPropertyKey } from './enums';
import { IntroEligibility } from './IntroEligibility';
import { Offering } from './Offering';
import { Offerings } from './Offerings';
import { Product } from './Product';
import { QonversionError } from './QonversionError';
import { User } from './User';
import { UserProperty } from './UserProperty';
import { UserProperties } from './UserProperties';
import { QonversionConfigBuilder } from './QonversionConfigBuilder';
import { Experiment } from "./Experiment";
import { Transaction } from './Transaction';
import { RemoteConfig } from './RemoteConfig';
import { RemoteConfigList } from './RemoteConfigList';
import { RemoteConfigurationSource } from "./RemoteConfigurationSource";
import { ExperimentGroup } from './ExperimentGroup';
import { SubscriptionPeriod } from './SubscriptionPeriod';
import { ProductInAppDetails } from './ProductInAppDetails';
import { ProductInstallmentPlanDetails } from './ProductInstallmentPlanDetails';
import { ProductOfferDetails } from './ProductOfferDetails';
import { ProductPrice } from './ProductPrice';
import { ProductPricingPhase } from './ProductPricingPhase';
import { ProductStoreDetails } from './ProductStoreDetails';
import { PurchaseModel } from './PurchaseModel';
import { PurchaseUpdateModel } from './PurchaseUpdateModel';
import { PurchaseOptions } from './PurchaseOptions';
import { PurchaseOptionsBuilder } from './PurchaseOptionsBuilder';
import { ScreenPresentationConfig } from './ScreenPresentationConfig';
import { Automations } from './Automations';
export default class Qonversion {
    private constructor();
    private static backingInstance;
    /**
     * Use this variable to access Automations part of the Qonversion SDK.
     */
    static Automations: typeof Automations;
    /**
     * Use this variable to get a current initialized instance of the Qonversion SDK.
     * Please, use the property only after calling {@link Qonversion.initialize}.
     * Otherwise, trying to access the variable will cause an exception.
     *
     * @return Current initialized instance of the Qonversion SDK.
     * @throws error if the instance has not been initialized
     */
    static getSharedInstance(): QonversionApi;
    /**
     * An entry point to use Qonversion SDK. Call to initialize Qonversion SDK with required and extra configs.
     * The function is the best way to set additional configs you need to use Qonversion SDK.
     * You still have an option to set a part of additional configs later via calling separate setters.
     *
     * @param config a config that contains key SDK settings.
     *        Call {@link QonversionConfigBuilder.build} to configure and create a QonversionConfig instance.
     * @return Initialized instance of the Qonversion SDK.
     */
    static initialize(config: QonversionConfig): QonversionApi;
    /**
     * Exports of library classes and enums to be accessible from Cordova application.
     */
    static ActionResult: typeof ActionResult;
    static AutomationsEvent: typeof AutomationsEvent;
    static Entitlement: typeof Entitlement;
    static Transaction: typeof Transaction;
    static RemoteConfig: typeof RemoteConfig;
    static RemoteConfigList: typeof RemoteConfigList;
    static Experiment: typeof Experiment;
    static LaunchMode: typeof LaunchMode;
    static Environment: typeof Environment;
    static ProductType: typeof ProductType;
    static EntitlementRenewState: typeof EntitlementRenewState;
    static EntitlementSource: typeof EntitlementSource;
    static RemoteConfigurationSource: typeof RemoteConfigurationSource;
    static ExperimentGroup: typeof ExperimentGroup;
    static ExperimentGroupType: typeof ExperimentGroupType;
    static EntitlementGrantType: typeof EntitlementGrantType;
    static TransactionEnvironment: typeof TransactionEnvironment;
    static TransactionOwnershipType: typeof TransactionOwnershipType;
    static TransactionType: typeof TransactionType;
    static UserPropertyKey: typeof UserPropertyKey;
    static UserProperty: typeof UserProperty;
    static UserProperties: typeof UserProperties;
    static AttributionProvider: typeof AttributionProvider;
    static EntitlementsCacheLifetime: typeof EntitlementsCacheLifetime;
    static SKPeriodUnit: {
        readonly 0: "DAY";
        readonly 1: "WEEK";
        readonly 2: "MONTH";
        readonly 3: "YEAR";
    };
    static SKProductDiscountType: {
        readonly 0: "INTRODUCTORY";
        readonly 1: "SUBSCRIPTION";
    };
    static SKProductDiscountPaymentMode: {
        readonly 0: "PAY_AS_YOU_GO";
        readonly 1: "PAY_UP_FRONT";
        readonly 2: "FREE_TRIAL";
    };
    static OfferingTag: {
        readonly "-1": "UNKNOWN";
        readonly "0": "NONE";
        readonly "1": "MAIN";
    };
    static IntroEligibilityStatus: typeof IntroEligibilityStatus;
    static ActionResultType: typeof ActionResultType;
    static AutomationsEventType: typeof AutomationsEventType;
    static IntroEligibility: typeof IntroEligibility;
    static Offering: typeof Offering;
    static Offerings: typeof Offerings;
    static Product: typeof Product;
    static PricingPhaseRecurrenceMode: typeof PricingPhaseRecurrenceMode;
    static PricingPhaseType: typeof PricingPhaseType;
    static PurchaseUpdatePolicy: typeof PurchaseUpdatePolicy;
    static ProductInAppDetails: typeof ProductInAppDetails;
    static ProductInstallmentPlanDetails: typeof ProductInstallmentPlanDetails;
    static ProductOfferDetails: typeof ProductOfferDetails;
    static ProductPrice: typeof ProductPrice;
    static ProductPricingPhase: typeof ProductPricingPhase;
    static ProductStoreDetails: typeof ProductStoreDetails;
    static PurchaseModel: typeof PurchaseModel;
    static PurchaseUpdateModel: typeof PurchaseUpdateModel;
    static PurchaseOptions: typeof PurchaseOptions;
    static PurchaseOptionsBuilder: typeof PurchaseOptionsBuilder;
    static ScreenPresentationConfig: typeof ScreenPresentationConfig;
    static ScreenPresentationStyle: typeof ScreenPresentationStyle;
    static QonversionError: typeof QonversionError;
    static QonversionErrorCode: typeof QonversionErrorCode;
    static User: typeof User;
    static SKProduct: typeof SKProduct;
    static SKProductDiscount: typeof SKProductDiscount;
    static SKSubscriptionPeriod: typeof SKSubscriptionPeriod;
    static SkuDetails: typeof SkuDetails;
    static SubscriptionPeriod: typeof SubscriptionPeriod;
    static Config: typeof QonversionConfig;
    static ConfigBuilder: typeof QonversionConfigBuilder;
}
