import type { AdLoadRequest, AdInterstitialShowResponse, AdLoadResponse, AdShowRequest, AdRewardedShowResponse, AssetPurchaseRequest, BoostActivationRequest, BoostBalanceResponse, BoostHistoryResponse, BoostPurchaseRequest, BoostPurchaseResponse, BoostReportQuery, BoostReportResponse, BoostStatusResponse, CreditPackCheckoutSessionRequest, CreditPackCheckoutSessionResponse, CreditPackCheckoutStatusResponse, CreatorEarningsResponse, IapPurchaseRequest, IapPurchaseResponse, IapReceiptListParams, IapReceiptResponse, IapReceiptsResponse, PurchaseResponse, ShopResponse, TransactionsResponse } from '@playdrop/types';
type ApiResponseLike<T> = {
    status: number;
    body: T;
    headers: Headers;
};
type RequestExecutor = <T>(input: {
    method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
    path: string;
    body?: unknown;
    headers?: Record<string, string>;
    signal?: AbortSignal;
}) => Promise<ApiResponseLike<T>>;
type ErrorHandler = (response: ApiResponseLike<unknown>, defaultMessage: string) => never;
export declare function buildPaymentsApiClientMethods(input: {
    request: RequestExecutor;
    handleApiError: ErrorHandler;
    buildIapQuery: (params?: IapReceiptListParams) => string | null;
}): {
    fetchPublicCreditShop(): Promise<ShopResponse>;
    fetchCreditShop(): Promise<ShopResponse>;
    createCreditPackCheckoutSession(sku: string, requestBody?: CreditPackCheckoutSessionRequest): Promise<CreditPackCheckoutSessionResponse>;
    fetchCreditPackCheckoutStatus(sessionId: string): Promise<CreditPackCheckoutStatusResponse>;
    purchaseAsset(body: AssetPurchaseRequest): Promise<PurchaseResponse>;
    purchaseIap(body: IapPurchaseRequest): Promise<IapPurchaseResponse>;
    purchaseDevIap(appId: number, slot: number, body: IapPurchaseRequest): Promise<IapPurchaseResponse>;
    fetchIapReceipts(params?: IapReceiptListParams): Promise<IapReceiptsResponse>;
    cancelIapReceipt(receiptId: number): Promise<IapReceiptResponse>;
    fetchAppIapReceipts(params?: Omit<IapReceiptListParams, "appId">): Promise<IapReceiptsResponse>;
    consumeAppIapReceipt(receiptId: number): Promise<IapReceiptResponse>;
    grantAppIapReceipt(receiptId: number): Promise<IapReceiptResponse>;
    cancelAppIapReceipt(receiptId: number): Promise<IapReceiptResponse>;
    fetchCreditTransactions(options?: {
        limit?: number;
        offset?: number;
    }): Promise<TransactionsResponse>;
    fetchBoostBalance(): Promise<BoostBalanceResponse>;
    purchaseBoostPack(body: BoostPurchaseRequest): Promise<BoostPurchaseResponse>;
    activateAppBoost(appId: number, body?: BoostActivationRequest): Promise<BoostStatusResponse>;
    fetchAppBoostStatus(appId: number): Promise<BoostStatusResponse>;
    fetchAppBoostHistory(appId: number, options?: {
        limit?: number;
    }): Promise<BoostHistoryResponse>;
    fetchAppBoostReport(appId: number, options?: BoostReportQuery): Promise<BoostReportResponse>;
    fetchCreatorEarnings(options?: {
        days?: number;
        appId?: number;
    }): Promise<CreatorEarningsResponse>;
    loadInterstitialAd(body: AdLoadRequest): Promise<AdLoadResponse>;
    loadDevInterstitialAd(appId: number, slot: number, body: Pick<AdLoadRequest, "viewerSurface">): Promise<AdLoadResponse>;
    showInterstitialAd(body: AdShowRequest): Promise<AdInterstitialShowResponse>;
    showDevInterstitialAd(appId: number, slot: number, body: AdShowRequest): Promise<AdInterstitialShowResponse>;
    loadRewardedAd(body: AdLoadRequest): Promise<AdLoadResponse>;
    loadDevRewardedAd(appId: number, slot: number, body: Pick<AdLoadRequest, "viewerSurface">): Promise<AdLoadResponse>;
    showRewardedAd(body: AdShowRequest): Promise<AdRewardedShowResponse>;
    showDevRewardedAd(appId: number, slot: number, body: AdShowRequest): Promise<AdRewardedShowResponse>;
};
export {};
//# sourceMappingURL=payments.d.ts.map