import { AttributionProvider, UserPropertyKey } from "./enums";
import { IntroEligibility } from "./IntroEligibility";
import { Offerings } from "./Offerings";
import { Entitlement } from "./Entitlement";
import { Product } from "./Product";
import { PromoPurchasesListener } from './PromoPurchasesListener';
import { User } from './User';
import { QonversionApi } from './QonversionApi';
import { QonversionConfig } from './QonversionConfig';
import { EntitlementsUpdateListener } from './EntitlementsUpdateListener';
import { RemoteConfig } from "./RemoteConfig";
import { RemoteConfigList } from "./RemoteConfigList";
import { UserProperties } from './UserProperties';
import { PurchaseModel } from './PurchaseModel';
import { PurchaseUpdateModel } from './PurchaseUpdateModel';
import { PurchaseOptions } from "./PurchaseOptions";
import { SKProductDiscount } from './SKProductDiscount';
import { PromotionalOffer } from './PromotionalOffer';
export default class QonversionInternal implements QonversionApi {
    entitlementsUpdateListener: EntitlementsUpdateListener | undefined;
    promoPurchasesListener: PromoPurchasesListener | undefined;
    constructor(qonversionConfig: QonversionConfig);
    syncHistoricalData(): void;
    syncStoreKit2Purchases(): void;
    getPromotionalOffer(product: Product, discount: SKProductDiscount): Promise<PromotionalOffer | null>;
    purchaseProduct(product: Product, options: PurchaseOptions | undefined): Promise<Map<string, Entitlement>>;
    purchase(purchaseModel: PurchaseModel): Promise<Map<string, Entitlement>>;
    updatePurchase(purchaseUpdateModel: PurchaseUpdateModel): Promise<Map<string, Entitlement> | null>;
    products(): Promise<Map<string, Product>>;
    offerings(): Promise<Offerings | null>;
    checkTrialIntroEligibility(ids: string[]): Promise<Map<string, IntroEligibility>>;
    checkEntitlements(): Promise<Map<string, Entitlement>>;
    restore(): Promise<Map<string, Entitlement>>;
    syncPurchases(): void;
    isFallbackFileAccessible(): Promise<Boolean>;
    identify(userID: string): Promise<User>;
    logout(): void;
    userInfo(): Promise<User>;
    remoteConfig(contextKey: string | undefined): Promise<RemoteConfig>;
    remoteConfigList(): Promise<RemoteConfigList>;
    remoteConfigListForContextKeys(contextKeys: string[], includeEmptyContextKey: boolean): Promise<RemoteConfigList>;
    attachUserToExperiment(experimentId: string, groupId: string): Promise<void>;
    detachUserFromExperiment(experimentId: string): Promise<void>;
    attachUserToRemoteConfiguration(remoteConfigurationId: string): Promise<void>;
    detachUserFromRemoteConfiguration(remoteConfigurationId: string): Promise<void>;
    attribution(data: Object, provider: AttributionProvider): void;
    setUserProperty(property: UserPropertyKey, value: string): void;
    setCustomUserProperty(property: string, value: string): void;
    userProperties(): Promise<UserProperties>;
    collectAdvertisingId(): void;
    collectAppleSearchAdsAttribution(): void;
    setEntitlementsUpdateListener(listener: EntitlementsUpdateListener): void;
    setPromoPurchasesDelegate(delegate: PromoPurchasesListener): void;
    presentCodeRedemptionSheet(): void;
}
