import React, { PropsWithChildren } from 'react';
import { LOCALE } from "../../interfaces/types/Locale";
import { LeadGenProps } from "../LeadGen.type";
export type SubmitValue = {};
export type SubmitSubscriptionBoxValue = {
    url: string;
    site_domain: string;
    cookie_id: string;
    ga_client_id: string;
    name: string;
    area_code: string;
    phone_number: string;
    sso_user_id: string;
    sso_uuid: string;
    sso_verified_profile: 1 | 0;
    subscription_title: string;
    article_id: number;
    article_title: string;
    category_id: string | number;
    category_name: string;
    campaign_id: number;
};
export type ImpressionValue = {
    subscription_title: string;
    name: string;
    area_code: string;
    phone_number: string;
    site_domain: string;
    url: string;
    cookie_id: string;
    ga_client_id: string;
    article_title: string;
    article_id: string;
    category_id: string;
    type: string;
};
export type LeadGenContextProps = LeadGenProps & {
    submit: (value?: SubmitValue) => Promise<any>;
    submitSubscriptionBox: (value?: Partial<SubmitSubscriptionBoxValue>) => Promise<any>;
    impression: (type: 'impression' | 'submit_form') => Promise<any>;
    /** For Subscription Box */
    subscriptionIcon: string;
    subscriptionTitle: string;
    subscriptionPhoneType: string;
    desktopBanner: string;
    mobileBanner: string;
    buttonTextColor: string;
    buttonColor: string;
};
export declare const LeadGenContext: React.Context<LeadGenContextProps>;
export declare const LeadGenContextProvider: (props: PropsWithChildren<LeadGenProps>) => React.JSX.Element;
export declare const useLeadGenContext: () => {
    apiSsoUrl: string;
    apiLeadUrl: string;
    apiSubotUrl: string;
    campaign_code?: string;
    forceCampaign?: any;
    locale?: LOCALE;
    siteId?: string;
    siteDomain?: string;
    extraValues?: import("../LeadGen.type").LeadGenFormValue;
    extraPayloadValues?: import("../LeadGen.type").LeadGenExtraPayload[];
    userInfo?: import("../../types").UserInfo;
    onFinish?: (value: import("../LeadGen.type").LeadGenFormValue, metaValue?: {
        blocks?: import("../LeadGenForm").LeadGenBlock[];
        isUpdateSso?: boolean;
    }) => void;
    articleId?: number;
    categoryId?: string | number;
    categoryList?: import("../../together/interfaces/types").Category[];
    submit: (value?: SubmitValue) => Promise<any>;
    submitSubscriptionBox: (value?: Partial<SubmitSubscriptionBoxValue>) => Promise<any>;
    impression: (type: 'impression' | 'submit_form') => Promise<any>;
    /** For Subscription Box */
    subscriptionIcon: string;
    subscriptionTitle: string;
    subscriptionPhoneType: string;
    desktopBanner: string;
    mobileBanner: string;
    buttonTextColor: string;
    buttonColor: string;
};
