import { Repository } from 'typeorm';
import { BudgetTransaction } from './entities/budget-transaction.entity';
import { BudgetCategory } from './entities/budget-category.entity';
import { CreateTransactionDto } from './dto/create-transaction.dto';
import { CreateCategoryDto } from './dto/create-category.dto';
import { CreateMonthlyBudgetDto } from './dto/create-monthly-budget.dto';
import { MonthlyBudget } from './entities/monthly-budget.entity';
import { OnModuleInit } from '@nestjs/common';
import { CurrenciesService } from '../currencies/currencies.service';
export declare class TransactionsService implements OnModuleInit {
    private transactionsRepository;
    private categoriesRepository;
    private monthlyBudgetRepository;
    private currenciesService;
    constructor(transactionsRepository: Repository<BudgetTransaction>, categoriesRepository: Repository<BudgetCategory>, monthlyBudgetRepository: Repository<MonthlyBudget>, currenciesService: CurrenciesService);
    onModuleInit(): Promise<void>;
    private seedCategories;
    createTransaction(userId: number, createTransactionDto: CreateTransactionDto): Promise<BudgetTransaction>;
    findAllTransactions(userId: number): Promise<BudgetTransaction[]>;
    updateTransaction(userId: number, id: number, updateData: Partial<CreateTransactionDto>): Promise<BudgetTransaction>;
    removeTransaction(userId: number, id: number): Promise<BudgetTransaction>;
    createCategory(userId: number, createCategoryDto: CreateCategoryDto): Promise<BudgetCategory>;
    createDefaultCategoriesForUser(userId: number): Promise<BudgetCategory[]>;
    findAllCategories(userId: number): Promise<BudgetCategory[]>;
    updateCategory(userId: number, id: number, updateData: Partial<CreateCategoryDto>): Promise<BudgetCategory>;
    removeCategory(userId: number, id: number): Promise<BudgetCategory>;
    createMonthlyBudget(userId: number, dto: CreateMonthlyBudgetDto): Promise<MonthlyBudget>;
    findAllMonthlyBudgets(userId: number, month?: number, year?: number): Promise<MonthlyBudget[]>;
    updateMonthlyBudget(userId: number, id: number, dto: Partial<CreateMonthlyBudgetDto>): Promise<MonthlyBudget>;
    removeMonthlyBudget(userId: number, id: number): Promise<MonthlyBudget>;
}
