import { UserRole } from '@prisma/client';
import { UpsertLoyaltySettingsDto } from './dto/upsert-loyalty-settings.dto';
import { LoyaltySettingsService } from './loyalty-settings.service';
type RequestWithUser = {
    user: {
        id: string;
        role: UserRole;
        shopId: string | null;
    };
};
export declare class LoyaltySettingsController {
    private readonly loyalty;
    constructor(loyalty: LoyaltySettingsService);
    get(req: RequestWithUser, shopId?: string): Promise<{
        id: string;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        percentageRate: number | null;
        stepAmount: number | null;
        pointsPerStep: number | null;
        minOrderFirstPoint: number;
        minOrderApplyPoint: number;
        validityMonths: number;
        maxEarnablePoints: number;
        maxRedeemPercent: number;
        earnType: import("@prisma/client").$Enums.LoyaltyEarnType;
        welcomeBonus: number;
        referralBonus: number;
    } | {
        shopId: string;
        minOrderFirstPoint: number;
        minOrderApplyPoint: number;
        validityMonths: number;
        maxEarnablePoints: number;
        maxRedeemPercent: number;
        earnType: "INCREMENTAL";
        percentageRate: null;
        stepAmount: number;
        pointsPerStep: number;
        welcomeBonus: number;
        referralBonus: number;
    }>;
    upsert(req: RequestWithUser, dto: UpsertLoyaltySettingsDto, shopId?: string): Promise<{
        id: string;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        percentageRate: number | null;
        stepAmount: number | null;
        pointsPerStep: number | null;
        minOrderFirstPoint: number;
        minOrderApplyPoint: number;
        validityMonths: number;
        maxEarnablePoints: number;
        maxRedeemPercent: number;
        earnType: import("@prisma/client").$Enums.LoyaltyEarnType;
        welcomeBonus: number;
        referralBonus: number;
    }>;
}
export {};
