import { Repository } from "typeorm";
import { Favorite } from "../../common/favorite/favorite.entity";
import { CreateFavoriteDto, CreateListingFavoriteDto } from "./favorite.dto";
import { Shop } from "src/common/shop/shop.entity";
import { Review } from "src/common/review/review.entity";
import { Offer } from "src/common/offer/offer.entity";
import { CarListing } from "src/common/carmarketplace/car-listing.entity";
import { NumberPlateListing } from "src/common/numberplate/numberplate-listing.entity";
export declare class FavoriteService {
    private readonly favoriteRepository;
    private readonly shopRepository;
    private readonly reviewRepository;
    private readonly offerRepository;
    private readonly carListingRepository;
    private readonly plateListingRepository;
    constructor(favoriteRepository: Repository<Favorite>, shopRepository: Repository<Shop>, reviewRepository: Repository<Review>, offerRepository: Repository<Offer>, carListingRepository: Repository<CarListing>, plateListingRepository: Repository<NumberPlateListing>);
    create(createFavoriteDto: CreateFavoriteDto): Promise<Favorite>;
    findAll(shopId: number): Promise<Favorite[]>;
    findUserFavorite(userId: number): Promise<any>;
    findOne(id: number): Promise<Favorite>;
    remove(id: number): Promise<void>;
    addListingFavorite(userId: number, dto: CreateListingFavoriteDto): Promise<Favorite>;
    removeListingFavorite(userId: number, listingType: string, listingId: number): Promise<void>;
    checkListingFavorite(userId: number, listingType: string, listingId: number): Promise<{
        isFavorite: boolean;
        favoriteId: number | null;
    }>;
    findUserListingFavorites(userId: number, listingType?: string): Promise<any[]>;
}
