import { PrismaService } from '../../prisma/prisma.service';
import { CreateExpenseDto } from './dto/create-expense.dto';
import { UpdateExpenseDto } from './dto/update-expense.dto';
import { CreateFixedExpenseDto } from './dto/create-fixed-expense.dto';
import { UpdateFixedExpenseDto } from './dto/update-fixed-expense.dto';
import { CreateCategoryDto } from './dto/create-category.dto';
import { PaginationDto } from '../../common/dto/pagination.dto';
export declare class ExpensesService {
    private readonly prisma;
    constructor(prisma: PrismaService);
    private serializeBigInt;
    findAll(userId: number, query: PaginationDto & {
        categoryId?: string;
        startDate?: string;
        endDate?: string;
    }): Promise<{
        data: any;
        total: number;
        page: number;
        limit: number;
    }>;
    findOne(userId: number, id: number): Promise<any>;
    create(userId: number, dto: CreateExpenseDto): Promise<any>;
    update(userId: number, id: number, dto: UpdateExpenseDto): Promise<any>;
    remove(userId: number, id: number): Promise<{
        message: string;
    }>;
    getCategories(userId: number): Promise<any>;
    createCategory(userId: number, dto: CreateCategoryDto): Promise<any>;
    deleteCategory(userId: number, id: number): Promise<{
        message: string;
    }>;
    getFixedExpenses(userId: number): Promise<any>;
    createFixedExpense(userId: number, dto: CreateFixedExpenseDto): Promise<any>;
    updateFixedExpense(userId: number, id: number, dto: UpdateFixedExpenseDto): Promise<any>;
    deleteFixedExpense(userId: number, id: number): Promise<{
        message: string;
    }>;
    getMonthlySummary(userId: number, year: number, month: number): Promise<{
        year: number;
        month: number;
        totalAmount: number;
        totalCount: number;
        byCategory: {
            categoryId: number | null;
            nameKo: string;
            nameEn: string;
            total: number;
            count: number;
        }[];
    }>;
}
