import { Kysely } from 'kysely';
import { DB } from "../../database/database.type";
import { Logger } from 'pino-nestjs';
import { WalletService } from '../wallet/wallet.service';
type RewardType = 'credits' | 'found_report_bonus';
type RewardAdNetwork = 'admob' | 'custom';
export declare class AdsService {
    private readonly db;
    private readonly logger;
    private readonly walletService;
    constructor(db: Kysely<DB>, logger: Logger, walletService: WalletService);
    private getAdToggles;
    getActiveAds(): Promise<{
        status: boolean;
        statusCode: number;
        data: any[];
    }>;
    private getRandomActiveCustomRewardAd;
    startRewardIntent(user_id: string, input: {
        rewardType?: RewardType;
        adUnitId?: string;
        adNetwork?: RewardAdNetwork;
    }): Promise<{
        status: boolean;
        statusCode: number;
        data: {
            intentToken: `${string}-${string}-${string}-${string}-${string}`;
            rewardType: RewardType;
            rewardValue: number;
            expiresAt: Date;
            ssvCustomData: `${string}-${string}-${string}-${string}-${string}`;
        };
    }>;
    verifyAdmobReward(payload: Record<string, unknown>, rawQuery?: string): Promise<{
        status: boolean;
        statusCode: number;
        data: {
            verified: boolean;
            disabled: boolean;
            message: string;
            probe?: undefined;
            duplicate?: undefined;
            intentToken?: undefined;
            status?: undefined;
        };
    } | {
        status: boolean;
        statusCode: number;
        data: {
            verified: boolean;
            probe: boolean;
            message: string;
            disabled?: undefined;
            duplicate?: undefined;
            intentToken?: undefined;
            status?: undefined;
        };
    } | {
        status: boolean;
        statusCode: number;
        data: {
            duplicate: boolean;
            intentToken: string;
            verified?: undefined;
            disabled?: undefined;
            message?: undefined;
            probe?: undefined;
            status?: undefined;
        };
    } | {
        status: boolean;
        statusCode: number;
        data: {
            verified: boolean;
            status: string;
            intentToken: string;
            disabled?: undefined;
            message?: undefined;
            probe?: undefined;
            duplicate?: undefined;
        };
    }>;
    claimRewardIntent(user_id: string, intentToken: string): Promise<{
        status: boolean;
        statusCode: number;
        data: {
            duplicate: boolean;
            rewardType: any;
            message: string;
        };
    } | {
        status: boolean;
        statusCode: number;
        data: Record<string, unknown>;
    }>;
}
export {};
