import { Kysely } from 'kysely';
import { DB } from "../../database/database.type";
import { Logger } from 'pino-nestjs';
import { NotificationsService } from '../notifications/notifications.service';
export type GrantRewardInput = {
    userId: string;
    rewardKey: string;
    rewardType: string;
    days: number;
    reason: string;
    metadata?: Record<string, unknown>;
    sourceEventId?: string | null;
};
export type GrantRewardResult = {
    granted: boolean;
    duplicate: boolean;
    capped: boolean;
    requestedDays: number;
    grantedDays: number;
    premiumUntil: string | null;
};
export declare function extendPremiumFromLatest(currentExpiry: Date | null, days: number): Date;
export declare class RewardEngineService {
    private readonly db;
    private readonly logger;
    private readonly notificationsService;
    constructor(db: Kysely<DB>, logger: Logger, notificationsService: NotificationsService);
    grantReward(input: GrantRewardInput): Promise<GrantRewardResult>;
}
