import { AttributionProvider, UserPropertyKey } from "../dto/enums";
import { IntroEligibility } from "../dto/IntroEligibility";
import { Offerings } from "../dto/Offerings";
import { Entitlement } from "../dto/Entitlement";
import { Product } from "../dto/Product";
import { EntitlementsUpdateListener } from '../dto/EntitlementsUpdateListener';
import { PromoPurchasesListener } from '../dto/PromoPurchasesListener';
import { User } from '../dto/User';
import { PurchaseOptions } from '../dto/PurchaseOptions';
import { QonversionConfig } from '../QonversionConfig';
import { RemoteConfig } from "../dto/RemoteConfig";
import { UserProperties } from '../dto/UserProperties';
import { RemoteConfigList } from '../dto/RemoteConfigList';
import { QonversionApi } from '../QonversionApi';
import { SKProductDiscount } from '../dto/storeProducts/SKProductDiscount';
import { PromotionalOffer } from '../dto/PromotionalOffer';
export default class QonversionInternal implements QonversionApi {
    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>>;
    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;
    identify(userID: string): Promise<User>;
    logout(): void;
    userInfo(): Promise<User>;
    collectAdvertisingId(): void;
    collectAppleSearchAdsAttribution(): void;
    setEntitlementsUpdateListener(listener: EntitlementsUpdateListener): void;
    setPromoPurchasesDelegate(delegate: PromoPurchasesListener): void;
    presentCodeRedemptionSheet(): void;
    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>;
    isFallbackFileAccessible(): Promise<Boolean>;
    attribution(data: Object, provider: AttributionProvider): void;
    setUserProperty(property: UserPropertyKey, value: string): void;
    setCustomUserProperty(property: string, value: string): void;
    userProperties(): Promise<UserProperties>;
}
