import { Repository } from 'typeorm';
import { Payment } from './entities/payment.entity.js';
import { Project } from '../projects/entities/project.entity.js';
import { Company } from '../companies/entities/company.entity.js';
import { CreatePaymentDto } from './dto/create-payment.dto.js';
import { UpdatePaymentDto } from './dto/update-payment.dto.js';
import { QueryPaymentDto } from './dto/query-payment.dto.js';
import { PaginatedResponseDto } from '../common/dto/pagination.dto.js';
import { UserRole } from '../users/entities/user.entity.js';
import { NotificationsService } from '../notifications/notifications.service.js';
import { NotificationsGateway } from '../notifications/notifications.gateway.js';
import { User } from '../users/entities/user.entity.js';
export declare class PaymentsService {
    private paymentsRepository;
    private projectsRepository;
    private companiesRepository;
    private usersRepository;
    private notificationsService;
    private notificationsGateway;
    constructor(paymentsRepository: Repository<Payment>, projectsRepository: Repository<Project>, companiesRepository: Repository<Company>, usersRepository: Repository<User>, notificationsService: NotificationsService, notificationsGateway: NotificationsGateway);
    create(projectId: string, createPaymentDto: CreatePaymentDto): Promise<Payment>;
    findAllByProject(projectId: string, query: QueryPaymentDto): Promise<PaginatedResponseDto<Payment>>;
    findAll(query: QueryPaymentDto): Promise<PaginatedResponseDto<any>>;
    findOne(id: string): Promise<Payment>;
    update(id: string, updatePaymentDto: UpdatePaymentDto, userRole: UserRole): Promise<Payment>;
    remove(id: string, userRole: UserRole): Promise<void>;
}
