import { BudgetLinesService } from '../services/budget-lines.service';
import { AuthenticatedUser } from '../../../common/decorators/current-user.decorator';
declare class UpsertBudgetDto {
    totalAmount: number;
}
declare class CreateBudgetLineDto {
    category: string;
    repartitionKeyId: string;
    estimatedAmount: number;
    notes?: string;
}
export declare class BudgetsController {
    private readonly budgets;
    constructor(budgets: BudgetLinesService);
    upsertBudget(user: AuthenticatedUser, fyId: string, dto: UpsertBudgetDto): Promise<{
        id: string;
        createdAt: Date;
        status: string;
        totalAmount: import("@prisma/client/runtime/library").Decimal;
        fiscalYearId: string;
    }>;
    list(user: AuthenticatedUser, budgetId: string): Promise<({
        repartitionKey: {
            id: string;
            code: string;
            label: string;
            description: string | null;
            createdAt: Date;
            complexId: string;
            type: import(".prisma/client").$Enums.RepartitionKeyType;
            scopeSpatialUnitId: string | null;
        };
    } & {
        id: string;
        category: string;
        repartitionKeyId: string;
        estimatedAmount: import("@prisma/client/runtime/library").Decimal;
        notes: string | null;
        budgetId: string;
    })[]>;
    create(user: AuthenticatedUser, budgetId: string, dto: CreateBudgetLineDto): Promise<{
        id: string;
        category: string;
        repartitionKeyId: string;
        estimatedAmount: import("@prisma/client/runtime/library").Decimal;
        notes: string | null;
        budgetId: string;
    }>;
    remove(user: AuthenticatedUser, id: string): Promise<{
        deleted: boolean;
    }>;
}
export {};
