import { Repository } from "typeorm";
import { Campaign } from "../../entities/campaign.entity";
import { Users } from "../../entities/users.entity";
import { CampaignCreateDto } from "./dtos/campaign-create.dto";
import { CampaignRepository } from "./campaign.repository";
import { AddInfluencerDto } from "./dtos/add-influencer.dto";
import { CampaignInfluencer } from "src/entities/campaign_influencer.entity";
import { AddBookmarkDto } from "./dtos/add-bookmark.dto";
import { CampaignInfluencerBookmarks } from "src/entities/campaign_influencer_bookmark.entity";
import { UsersServices } from "src/common/services/users/users.service";
import { Draft } from "src/entities/draft.entity";
import { DraftVersions } from "src/entities/draft_versions.entity";
import { DraftComments } from "src/entities/draft_comments.entity";
import { AddPostsDto } from "./dtos/add-posts.dto";
import { RejectCompletionRequest } from "src/entities/reject-completion-request.entity";
import { SocketGateway } from "src/common/services/socket/socket.gateway";
import { CampaignSaveDto } from "./dtos/save-campaign.dto";
import { InfluenceSaveCampaigns } from "src/entities/influencer-save-campaigns.entity";
import { CommonService } from "../common/common.services";
import { CampaignPayment } from "src/entities/campaign_payment.entity";
import { StripeServices } from "src/common/services/payment-gateway/stripe/stripe.service";
import { Card } from "src/entities/card.entity";
import { ReportDto } from "./dtos/report.dto";
import { Notifications } from "src/entities/notifications.entity";
import { InfluencerCampaignRecommended } from "src/entities/influencer_campaign_recommended.entity";
import { OpenAIService } from "src/common/services/openai/openai.service";
import { SendMailService } from "src/common/config/send-mail.service";
import { SocialMediaPosts } from "src/entities/social-media-posts.entity";
import { EncryptionService } from "src/common/services/encryption/encryption.service";
import { Settings } from "src/entities/settings.entity";
import { SocialMedias } from "src/entities/social-medias.entity";
import { CampaignInfluencerIdParamDto } from "./dtos/campaign-influencer-id-param.dto";
import { Posts } from "src/entities/posts.entity";
import { PreviewCampaignDto } from "./dtos/preview-campaign.dto";
import { CampaignCategoryCountryOrder } from "src/entities/campaign-category-country-order.entity";
export declare class CampaignService {
    private campaignRepository;
    private SocketGateway;
    private CommonService;
    private StripeService;
    private readonly OpenAIService;
    private readonly SendMailService;
    private readonly encryptService;
    private UsersServices;
    private Campaign;
    private Users;
    private CampaignInfluencer;
    private Draft;
    private DraftVersions;
    private DraftComments;
    private CampaignInfluencerBookmarks;
    private RejectCompletionRequest;
    private InfluenceSaveCampaigns;
    private CampaignPayment;
    private Card;
    private SocialMediaPosts;
    private InfluencerCampaignRecommended;
    private Notifications;
    private Settings;
    private SocialMedias;
    private Posts;
    private CampaignCategoryCountryOrder;
    constructor(campaignRepository: CampaignRepository, SocketGateway: SocketGateway, CommonService: CommonService, StripeService: StripeServices, OpenAIService: OpenAIService, SendMailService: SendMailService, encryptService: EncryptionService, UsersServices: UsersServices, Campaign: Repository<Campaign>, Users: Repository<Users>, CampaignInfluencer: Repository<CampaignInfluencer>, Draft: Repository<Draft>, DraftVersions: Repository<DraftVersions>, DraftComments: Repository<DraftComments>, CampaignInfluencerBookmarks: Repository<CampaignInfluencerBookmarks>, RejectCompletionRequest: Repository<RejectCompletionRequest>, InfluenceSaveCampaigns: Repository<InfluenceSaveCampaigns>, CampaignPayment: Repository<CampaignPayment>, Card: Repository<Card>, SocialMediaPosts: Repository<SocialMediaPosts>, InfluencerCampaignRecommended: Repository<InfluencerCampaignRecommended>, Notifications: Repository<Notifications>, Settings: Repository<Settings>, SocialMedias: Repository<SocialMedias>, Posts: Repository<Posts>, CampaignCategoryCountryOrder: Repository<CampaignCategoryCountryOrder>);
    sendCampaignNotification(payload: any): Promise<void>;
    list(queryParam: any, user: any): Promise<{
        data: Campaign[];
        total: number;
        hasMoreResults: number;
    }>;
    campaignPopup(auth: any): Promise<import("typeorm").UpdateResult>;
    getCampaign(queryParam: any, auth: any): Promise<{
        data: {
            running: Campaign[];
            completed: Campaign[];
        };
    }>;
    complete(param: any, authUser: any): Promise<void>;
    completeCometChatCampaign(campaignId: any): Promise<void>;
    beforeBrandDelete(authUser: any): Promise<boolean>;
    chaseUp(param: any, request: any, authUser: any): Promise<void>;
    campaignDetail(param: any, authUser: any): Promise<{
        data: Campaign;
    }>;
    getCampaignMeta(param: {
        slug: string;
    }): Promise<{
        data: Campaign;
        base_url: string;
    }>;
    campaignInfluencerDetail(param: any, authUser: any): Promise<{
        data: {
            campaign: Campaign;
            influencerDetails: any;
            failedPayment: CampaignPayment;
            card: boolean;
        };
    }>;
    campaignBrandDetail(param: any, authUser: any): Promise<{
        data: {
            campaign: Campaign;
            brandDetails: Users;
        };
    }>;
    getDraftDetails(params: any, authUser: any): Promise<{
        data: Draft;
    }>;
    create(request: CampaignCreateDto, authUser: any): Promise<{
        slug: any;
        profile_privacy: string;
    }>;
    openAI(request: any, authUser: any): Promise<string>;
    getLogs(query: any): Promise<any>;
    openAIChat(request: any, authUser: any): Promise<string>;
    addInfluencer(request: AddInfluencerDto, authUser: any): Promise<{
        is_show_campaign_popup: any;
    }>;
    generateSlug(campaign_name: any): Promise<any>;
    update(request: any, params: any, authUser: any): Promise<{
        slug: string;
        profile_privacy: string;
    }>;
    sendBarterNotification(campaign: any, isBarter: boolean): Promise<void>;
    continueWithSamePrice(params: any, authUser: any): Promise<void>;
    delete(params: any): Promise<void>;
    changeStatus(params: any): Promise<void>;
    addBookmark(request: AddBookmarkDto, authUser: any): Promise<{
        id: string;
    }>;
    campaignSave(request: CampaignSaveDto, authUser: any): Promise<void>;
    campaignBookmark(queryParam: any, auth: any): Promise<{
        data: Campaign[];
    }>;
    campaignBookmarkExport(queryParam: any, authUser: any, response: any): Promise<void>;
    campaignApplicantsExport(queryParam: any, authUser: any, response: any): Promise<void>;
    getSimpleEngagementMap(social_medias: any): Promise<{}>;
    mergeAllProfile(influencer: any, worksheet: any, extras?: {}): Promise<void>;
    influencerList(queryParam: any, authUser: any): Promise<{
        data: {
            closed: {};
            completion_request: {};
            draft_available: {};
            drafting_deliverables: {};
            posting_deliverables: {};
            quotation_available: {};
            uncontacted: {};
            waiting_for_quotations: {};
        };
        counts: {
            closed: number;
            completion_request: number;
            draft_available: number;
            drafting_deliverables: number;
            posting_deliverables: number;
            quotation_available: number;
            uncontacted: number;
            waiting_for_quotations: number;
        };
    }>;
    getInfluencerByStatus(queryBuilder: any, campaign_id: any, status: any): Promise<any>;
    campaignCounter(campaign_id: string): Promise<{
        closed: number;
        completion_request: number;
        draft_available: number;
        drafting_deliverables: number;
        posting_deliverables: number;
        quotation_available: number;
        uncontacted: number;
        waiting_for_quotations: number;
    }>;
    private getInfluencerInvitedCount;
    contactNow(params: any, request: any, authUser: any): Promise<void>;
    quotationAproved(params: any, request: any, authUser: any): Promise<void>;
    bulkQuotationAproved(request: any, authUser: any): Promise<void>;
    updateInfluencerDueDates(params: any, request: any, authUser: any): Promise<{
        campaign_influencer_id: string;
    }>;
    checkChatPermission(params: any, authUser: any): Promise<{
        is_chat_allowed: boolean;
    }>;
    easyApply(params: any, request: any, authUser: any): Promise<{
        campaign_influencer_id: string;
        invited_count: number;
    }>;
    otherAttachment(params: any, request: any, authUser: any): Promise<{
        attachments: Record<string, any>;
        chat_attachment: Record<string, any>;
    }>;
    editPrice(params: any, request: any, authUser: any): Promise<{
        campaign_influencer_id: string;
        invited_count: number;
    }>;
    private formatCampaignPrice;
    private sendPriceChangeRequestNotification;
    approvePriceChange(params: any, authUser: any): Promise<void>;
    deleteDraft(params: any, authUser: any): Promise<void>;
    addDraft(params: any, request: any, authUser: any): Promise<void>;
    approveDraft(params: any, request: any, authUser: any): Promise<void>;
    isArchived(params: any, authUser: any): Promise<void>;
    addDraftComment(params: any, request: any, authUser: any): Promise<void>;
    getDraftComment(params: any, authUser: any): Promise<{
        data: DraftComments[];
    }>;
    influencerCampaignList(queryParam: any, authUser: any): Promise<{
        data: Campaign[];
        total: number;
        invited_count: number;
        hasMoreResults: number;
    }>;
    influencerRecommendedCampaign(queryParam: any, user: any): Promise<{
        data: InfluencerCampaignRecommended[];
        total: number;
        hasMoreResults: number;
    }>;
    influencerMyJob(queryParam: any, authUser: any): Promise<{
        data: Campaign[];
        total: number;
        hasMoreResults: number;
    }>;
    addPosts(request: AddPostsDto, authUser: any): Promise<{
        message: string;
    }>;
    withdrawJob(params: any, authUser: any): Promise<void>;
    terminateJobRequest(params: any, authUser: any): Promise<void>;
    changeInfluencerStatus(params: any, request: any, authUser: any): Promise<void>;
    campaignPayment(request: any, auth: any): Promise<{
        response: {
            paymentIntent: {
                clientSecret: string;
                requiresAction: boolean;
                id: string;
            };
            status: boolean;
            charge?: undefined;
            error?: undefined;
        };
    } | {
        response: {
            paymentIntent: import("stripe").Stripe.Response<import("stripe").Stripe.PaymentIntent>;
            status: boolean;
            charge?: undefined;
            error?: undefined;
        };
    } | {
        response: {
            charge: any;
            error: any;
            status: boolean;
            paymentIntent?: undefined;
        };
    } | {
        response: {
            paymentIntent: any;
            status: boolean;
            error: any;
        };
    }>;
    deleteCampaignPayment(param: any, auth: any): Promise<import("typeorm").DeleteResult>;
    influencerCalendar(param: any, auth: any): Promise<{
        data: Campaign[];
    }>;
    brandCalender(param: any, auth: any): Promise<{
        data: CampaignInfluencer[];
    }>;
    influencerDashboardList(param: any, auth: any): Promise<{
        data: CampaignInfluencer[];
    }>;
    viewAsCreator(queryParam: any, auth: any): Promise<{
        data: any[];
        total: number;
        hasMoreResults: number;
    }>;
    previewAsCreator(request: PreviewCampaignDto, queryParam: any, auth: any): Promise<{
        data: Campaign[];
        total: number;
        hasMoreResults: number;
    }>;
    brandDashboard(auth: any): Promise<{
        paymentFailedList: CampaignPayment[];
    }>;
    brandPayNow(body: any, auth: any): Promise<{
        response: {
            paymentIntent: {
                clientSecret: string;
                requiresAction: boolean;
                id: string;
            };
            status: boolean;
            charge?: undefined;
            error?: undefined;
        };
    } | {
        response: {
            paymentIntent: import("stripe").Stripe.Response<import("stripe").Stripe.PaymentIntent>;
            status: boolean;
            charge?: undefined;
            error?: undefined;
        };
    } | {
        response: {
            charge: any;
            error: any;
            status: boolean;
            paymentIntent?: undefined;
        };
    }>;
    sleep(ms: any): Promise<unknown>;
    paymentListForBrand(queryParam: any, auth: any): Promise<{
        data: Campaign[];
        total: number;
        hasMoreResults: number;
    }>;
    paymentStatisticForBrand(queryParam: any, auth: any): Promise<{
        paymentStatistics: any;
    }>;
    paymentListForInfluencer(queryParam: any, auth: any): Promise<{
        data: CampaignInfluencer[];
        total: number;
        hasMoreResults: number;
    }>;
    paymentStatisticForInfluencer(queryParam: any, auth: any): Promise<{
        paymentStatistics: any;
    }>;
    report(request: ReportDto): Promise<void>;
    cometChatWebhook(request: any): Promise<void>;
    adminNewMessageNotification(notificationMessage: any, authUser: any, campaign: any): Promise<void>;
    deleteCampaignInfluencer(params: CampaignInfluencerIdParamDto): Promise<void>;
    campaignInfluencerStatusNotification(): Promise<void>;
    campaignBrandStatusNotification(status: any, type: any): Promise<void>;
    campaignCompleteStatusNotification(): Promise<void>;
    processCompletionRequests30Days(): Promise<void>;
    dailyApplicationSummaryNotification(): Promise<void>;
    weeklyCompletionRequestNotification(): Promise<void>;
    updateRunningCampaignInfluencerCometChatGroups(): Promise<{
        total: number;
        updated: number;
        skipped: number;
    }>;
    forceOfflinePaymentsForForcedBrands(): Promise<{
        brands: number;
        paymentsUpdated: number;
        paymentsCreated: number;
        paymentsSkipped: number;
        errors: {
            campaign_influencer_id?: string;
            payment_id?: string;
            message: string;
        }[];
    }>;
}
