import { SmartObjectsStoreItem, SmartObjectsGameOffer, SmartObjectsGameOfferGroup, SmartObjectsOfferInfo, SmartObjectsOfferGroupInfo, LiveOpsStoreSlot, SmartObjectsShopSlot } from '../liveops';
export declare enum PurchaseResult {
    Success = "Success",
    Failed = "Failed",
    Cancelled = "Cancelled",
    Pending = "Pending"
}
export declare enum BalancyProductInfoPurchaseType {
    StoreItem = "StoreItem",
    Offer = "Offer",
    OfferGroup = "OfferGroup",
    ShopSlot = "ShopSlot"
}
export declare class BalancyProductInfo {
    productId: string;
    type: BalancyProductInfoPurchaseType;
    storeItemUnnyId: string;
    offerInstanceId: string;
    offerUnnyId: string;
    constructor(type: BalancyProductInfoPurchaseType, storeItem: SmartObjectsStoreItem);
    constructor(type: BalancyProductInfoPurchaseType, shopSlot: SmartObjectsShopSlot);
    constructor(type: BalancyProductInfoPurchaseType, offerInfo: SmartObjectsOfferInfo);
    constructor(type: BalancyProductInfoPurchaseType, offerInfo: SmartObjectsOfferGroupInfo, storeItem: SmartObjectsStoreItem);
    equals(other: BalancyProductInfo | null): boolean;
    getStoreItem(): SmartObjectsStoreItem | null;
    getShopSlot(): LiveOpsStoreSlot | null;
    getGameOffer(): SmartObjectsGameOffer | null;
    getGameOfferGroup(): SmartObjectsGameOfferGroup | null;
}
export declare class BalancyHardProductInfo {
    LocalizedTitle: string;
    LocalizedDescription: string;
    LocalizedPriceString: string;
    LocalizedPrice: number;
    IsoCurrencyCode: string;
    constructor(localizedTitle?: string, localizedDescription?: string, localizedPriceString?: string, localizedPrice?: number, isoCurrencyCode?: string);
}
export type GetHardInfoPurchaseCallback = (productId: string, callback: (info: BalancyHardProductInfo) => void) => void;
export type HardPurchaseCallback = (productInfo: BalancyProductInfo) => void;
export type OnAdWatchCallback = (callback: (success: boolean) => void) => void;
export type RestorePurchasesCallback = () => void;
declare class Ads {
    private static defaultOnAdWatchCallback;
    private static adWatchCallback;
    static setAdWatchCallback(callback: OnAdWatchCallback | null): void;
    static resetAdWatchCallback(): void;
    static getAdWatchCallback(): OnAdWatchCallback;
}
declare class Purchasing {
    private static defaultHardPurchaseCallback;
    private static hardPurchaseCallback;
    static setHardPurchaseCallback(callback: HardPurchaseCallback | null): void;
    static resetHardPurchaseCallback(): void;
    static getHardPurchaseCallback(): HardPurchaseCallback;
    private static defaultRestorePurchasesCallback;
    private static restorePurchasesCallback;
    static setRestorePurchasesCallback(callback: RestorePurchasesCallback | null): void;
    static resetRestorePurchasesCallback(): void;
    static getRestorePurchasesCallback(): RestorePurchasesCallback;
    private static defaultGetHardPurchaseInfo;
    private static getHardPurchaseInfo;
    static setGetHardPurchaseInfoCallback(callback: GetHardInfoPurchaseCallback | null): void;
    static getHardPurchaseInfoCallback(): GetHardInfoPurchaseCallback;
}
export type OnMessageCallbackType = (message: string) => boolean;
export type SendMessageToViewMethodType = (message: string) => void;
declare class View {
    static OnMessageCallback: OnMessageCallbackType | null;
    static SendMessageToViewMethod: SendMessageToViewMethodType | null;
    static setOnMessageReceivedCallback(callback: OnMessageCallbackType | null): void;
    static sendResponseToView(requestId: string, message: string): void;
    static sendCustomMessageToView(message: string): void;
}
export declare class Actions {
    static Purchasing: typeof Purchasing;
    static Ads: typeof Ads;
    static View: typeof View;
}
export {};
//# sourceMappingURL=actions.class.d.ts.map