import { UserRole } from '@prisma/client';
import { CreateLoyaltyProgramDto } from './dto/create-loyalty-program.dto';
import { UpdateLoyaltyProgramDto } from './dto/update-loyalty-program.dto';
import { SetLoyaltyProgramActiveDto } from './dto/set-loyalty-program-active.dto';
import { LoyaltyProgramsService } from './loyalty-programs.service';
type RequestWithUser = {
    user: {
        id: string;
        role: UserRole;
        shopId: string | null;
    };
};
export declare class LoyaltyProgramsController {
    private readonly loyalty;
    constructor(loyalty: LoyaltyProgramsService);
    list(req: RequestWithUser, shopId?: string): Promise<{
        id: string;
        name: string;
        isActive: boolean;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        type: import("@prisma/client").$Enums.LoyaltyProgramType;
        percentageRate: number | null;
        stepAmount: number | null;
        pointsPerStep: number | null;
    }[]>;
    create(req: RequestWithUser, dto: CreateLoyaltyProgramDto): Promise<{
        id: string;
        name: string;
        isActive: boolean;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        type: import("@prisma/client").$Enums.LoyaltyProgramType;
        percentageRate: number | null;
        stepAmount: number | null;
        pointsPerStep: number | null;
    }>;
    update(req: RequestWithUser, id: string, dto: UpdateLoyaltyProgramDto): Promise<{
        id: string;
        name: string;
        isActive: boolean;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        type: import("@prisma/client").$Enums.LoyaltyProgramType;
        percentageRate: number | null;
        stepAmount: number | null;
        pointsPerStep: number | null;
    }>;
    setActive(req: RequestWithUser, id: string, dto: SetLoyaltyProgramActiveDto): Promise<{
        id: string;
        name: string;
        isActive: boolean;
        shopId: string;
        createdAt: Date;
        updatedAt: Date;
        type: import("@prisma/client").$Enums.LoyaltyProgramType;
        percentageRate: number | null;
        stepAmount: number | null;
        pointsPerStep: number | null;
    }>;
    remove(req: RequestWithUser, id: string): Promise<{
        ok: boolean;
    }>;
}
export {};
