import { Response } from 'express';
import { DunningLevel } from '@prisma/client';
import { DunningService } from './dunning.service';
import { AuthenticatedUser } from '../../common/decorators/current-user.decorator';
declare class UpsertDunningRuleDto {
    level: DunningLevel;
    daysAfterDue?: number;
    template?: string;
    penaltyRate?: number;
    enabled?: boolean;
}
export declare class DunningController {
    private readonly service;
    constructor(service: DunningService);
    list(user: AuthenticatedUser, complexId: string): Promise<{
        id: string;
        createdAt: Date;
        complexId: string;
        enabled: boolean;
        template: string;
        level: import(".prisma/client").$Enums.DunningLevel;
        daysAfterDue: number;
        penaltyRate: import("@prisma/client/runtime/library").Decimal;
    }[]>;
    seedDefaults(user: AuthenticatedUser, complexId: string): Promise<{
        id: string;
        createdAt: Date;
        complexId: string;
        enabled: boolean;
        template: string;
        level: import(".prisma/client").$Enums.DunningLevel;
        daysAfterDue: number;
        penaltyRate: import("@prisma/client/runtime/library").Decimal;
    }[]>;
    upsert(user: AuthenticatedUser, complexId: string, dto: UpsertDunningRuleDto): Promise<{
        id: string;
        createdAt: Date;
        complexId: string;
        enabled: boolean;
        template: string;
        level: import(".prisma/client").$Enums.DunningLevel;
        daysAfterDue: number;
        penaltyRate: import("@prisma/client/runtime/library").Decimal;
    }>;
    runNow(user: AuthenticatedUser): Promise<{
        processed: number;
        actionsCreated: number;
    }>;
    formalNoticePdf(user: AuthenticatedUser, fundCallItemId: string, res: Response): Promise<void>;
}
export {};
