import { BillingService } from './billing.service';
import { type VerifyPurchaseInput } from './billing.types';
export declare class BillingController {
    private readonly billingService;
    constructor(billingService: BillingService);
    verifyPurchase(body: VerifyPurchaseInput, req: any): Promise<{
        status: boolean;
        statusCode: number;
        data: {
            active: boolean;
            creditPurchase: boolean;
            productId: string;
            transactionId: string;
            creditsAdded: any;
            duplicate: boolean;
            balance: any;
            status?: undefined;
            source?: undefined;
            diagnostics?: undefined;
            expiresAt?: undefined;
        };
    } | {
        status: boolean;
        statusCode: number;
        data: {
            active: boolean;
            status: import("./billing.types").SubscriptionStatus;
            source: string;
            diagnostics: {
                environment: any;
                subscriptionStatusCode: any;
                subscriptionStatusMeaning: string | null;
                transactionExpiresDateMs: any;
            } | null;
            expiresAt: Date | null;
            productId: string;
            transactionId: string;
            creditPurchase?: undefined;
            creditsAdded?: undefined;
            duplicate?: undefined;
            balance?: undefined;
        };
    } | {
        status: boolean;
        statusCode: number;
        data: {
            active: boolean;
            status: string;
            source: string;
            expiresAt: string;
            productId: string;
            transactionId: null;
            verificationSkipped: boolean;
            reason: string;
        };
    }>;
    getUserSubscription(req: any): Promise<{
        status: boolean;
        statusCode: number;
        data: {
            created_at: Date;
            id: string;
            updated_at: Date;
            user_id: string;
            source: string;
            status: string;
            original_transaction_id: string | null;
            product_id: string | null;
            current_period_end: Date | null;
            current_period_start: Date | null;
            latest_transaction_id: string | null;
            plan: string;
        } | null;
    }>;
    getPurchaseHistory(req: any): Promise<{
        status: boolean;
        statusCode: number;
        data: {
            created_at: Date;
            id: string;
            user_id: string | null;
            platform: string;
            original_transaction_id: string | null;
            product_id: string | null;
            store_payload: string | number | boolean | import("../../database/database.type").JsonArray | import("../../database/database.type").JsonObject | null;
            transaction_id: string | null;
            expires_at: Date | null;
            event_type: string;
        }[];
    }>;
}
