import { CreateResturantBannerDto } from './dto/create-resturant-banner.dto';
import { DbService } from 'src/db/db.service';
import { CommonService } from 'src/common/common.service';
import mongoose, { Types } from 'mongoose';
import { BannerListDto, GetNearbyBannersDto } from './dto/get-nearby-banners.dto';
import { BannerApprovalStatus, RestaurantBanner } from './entities/resturant-banner.entity';
export declare class ResturantBannerService {
    private readonly model;
    private readonly commonService;
    constructor(model: DbService, commonService: CommonService);
    createBanner(req: any, dto: CreateResturantBannerDto): Promise<mongoose.Document<unknown, {}, RestaurantBanner, {}, {}> & RestaurantBanner & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    getBannersForUserApp(user: any, dto: GetNearbyBannersDto): Promise<any[]>;
    updateBanner(id: string, updateData: Partial<CreateResturantBannerDto>): Promise<mongoose.Document<unknown, {}, RestaurantBanner, {}, {}> & RestaurantBanner & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    deleteBanner(id: string): Promise<mongoose.Document<unknown, {}, RestaurantBanner, {}, {}> & RestaurantBanner & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    deactivateExpiredBanners(): Promise<void>;
    toggleBannerStatus(id: string, status: 'active' | 'inactive'): Promise<mongoose.Document<unknown, {}, RestaurantBanner, {}, {}> & RestaurantBanner & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    vendorToggleBannerStatus(id: string, req: any, status: 'active' | 'inactive'): Promise<mongoose.Document<unknown, {}, RestaurantBanner, {}, {}> & RestaurantBanner & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    adminUpdateBannerApproval(id: string, status: BannerApprovalStatus): Promise<mongoose.Document<unknown, {}, RestaurantBanner, {}, {}> & RestaurantBanner & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    getCustomerHomePageBanners(type?: string, lat?: string, long?: string): Promise<{
        total: number;
        banners: any[];
    }>;
    getCustomerVendorBanners(resturantId: string): Promise<{
        total: number;
        banners: any[];
    }>;
    getAdminApprovedVendorBanners(dto: BannerListDto): Promise<{
        total: number;
        banners: any[];
    }>;
    getAdminPendingVendorBanners(dto: BannerListDto): Promise<{
        total: number;
        banners: any[];
    }>;
    vendorGetActiveBanners(req: any): Promise<{
        total: number;
        banners: (mongoose.Document<unknown, {}, RestaurantBanner, {}, {}> & RestaurantBanner & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    resturantBanners(dto: BannerListDto, req: any): Promise<{
        total: number;
        banners: any[];
    }>;
    getBannerDetails(id: string): Promise<{
        banner: any;
    }>;
    handleBannerStatusCron(): Promise<void>;
    trackBannerView(bannerId: string, customerId?: string): Promise<{
        message: string;
        view_count: number;
        banner: mongoose.Document<unknown, {}, RestaurantBanner, {}, {}> & RestaurantBanner & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
}
