import * as Types from '../store/type';
import { ChannelType, MessageType } from '../store/type';
export interface GetProfileMembersResponse {
    result: {
        channel_member: Types.ChannelMember[];
        channel_member_length: number;
        total_channel_member: number;
    };
    message: string;
    success: boolean;
}
export interface GetProfileCardResponse {
    result: IProfileSelection;
    message: string;
    success: boolean;
}
export interface IProfileSelection {
    channel_profile: IProfileForm[];
    channel_profile_length: number;
    total_channel_profile: number;
}
export interface IProfileForm {
    id: string;
    name: string;
    picture_url: string;
    other_business_type?: string | null;
    channel_business_type: {
        id: number;
        name: string;
    };
    channel_member_role: {
        id: number;
        name: string;
    };
    channel_profile_connect: {
        id: number;
        name: string;
        logo_url: string;
        website_url: string;
    }[];
    number_of_members_available?: number;
    has_enterprise_chat_connection?: boolean;
}
export type SendMessageParams = {
    sessionId: string;
    messages: Types.ReplyMessageItem[];
};
export type SendMessageResponse = {
    messages: Types.TextMessage[];
};
export type ReadMessageParams = {
    sessionId: string;
};
export type ReadMessageResponse = {
    last_read_at: Date;
};
export type GetChatMessagesParams = {
    sessionId: string;
    next?: string;
    prev?: string;
    startMessageId?: string;
    limit: number;
};
export type GetChatMessagesResponse = {
    messages: Types.ChatMessageItem[];
    reads?: Types.ChatMessageReader[];
    next?: string;
    prev?: string;
};
export type GetChatFilesParams = {
    sessionId: string;
};
export type GetChatFilesResponse = {
    files: Types.FileMessage[];
};
export type SearchChatMessagesParams = {
    sessionId: string;
    search: string;
};
export type SearchChatMessagesResponse = {
    messages: Types.SearchChatMessageItem[];
};
export type GetChatsParams = {
    start?: string;
    limit?: number;
    sessionId?: string;
} & SearchChatsParams;
export type SearchChatsMessageParams = {
    type: 'chat' | 'user';
    search: string;
    limit?: number;
    page?: number;
};
export type SearchChatsParams = {
    ignoreCache?: boolean;
    name?: string;
    search?: string;
    spam?: boolean;
    type?: 'user' | 'group';
    read?: boolean;
    context?: string;
    connections?: FilterConnection[];
    lastAnswerByIds?: string[];
    statusIds?: string[];
    tagIds?: string[];
    userIds?: string[];
    zrmzCustomerIds?: string[];
    following?: boolean;
    verifySlip?: string;
    verifySlipValue?: number;
    zrmz?: {
        isOnlyCustomers?: boolean;
        businessId?: string;
        shopId?: string;
        name?: string;
        phoneNumber?: string;
        email?: string;
        totalPointType?: string;
        totalPointMin?: number;
        totalPointMax?: number;
        remainingPointType?: string;
        remainingPointMin?: number;
        remainingPointMax?: number;
        gender?: string;
        channel?: string;
        channelStatus?: string;
        channelUser?: string;
        birthdateStart?: string;
        birthdateEnd?: string;
        customFields?: Record<string, string | null | undefined>;
    };
    zerva?: {
        isOnlyCustomers?: boolean;
        businessId?: string;
        shopId?: string;
        bookingNo?: string;
        name?: string;
        phoneNumber?: string;
        email?: string;
        bookingStartDate?: string;
        bookingEndDate?: string;
        paymentStatus?: string;
        bookingStatus?: string;
        branchIds?: string[];
        serviceIds?: string[];
        subIds?: string[];
    };
};
export type GetChatsResponse = {
    chats: Types.TChatItem[];
    next?: string;
};
export type SearchChatsMessageResponse = {
    chats: Types.TSearchChatItem[];
    total: number;
};
export type GetChatByUserIdParams = {
    userId: string;
};
export type GetChatParams = {
    sessionId: string;
};
export type UpdateChatParams = {
    sessionId: string;
    language?: string;
    pin?: boolean;
    spam?: boolean;
};
export type UpdateChatResponse = BaseResponse;
export type TranslateChatMessageParams = {
    sessionId: string;
    text?: string;
    messageIds?: string[];
};
export type TranslateChatMessageResponse = {
    text?: string;
    messages?: {
        id: string;
        text: string;
        is_translate_from_input?: boolean;
    }[];
};
export type GetChatResponse = {
    chat: Types.TChatItem;
};
export type GetMediaParams = {
    channel: Types.ChannelType;
    sessionId: string;
    messageId: string;
    file?: Types.FileMessage;
};
export type GetUserParams = {
    type?: 'user' | 'group';
    channel: Types.ChannelType;
    id: string;
    sessionId?: string;
};
export type GetUserResponse = Types.UserItem;
export type UpdateUserParams = {
    type?: 'user' | 'group';
    channel: Types.ChannelType;
    id: string;
    nickname?: string;
    email?: string | null;
    phone_number?: string | null;
    address?: string | Types.UserAddress | null;
    gender?: string | null;
    locale?: string | null;
    note?: string | null;
    status_id?: string | null;
    add_tag_ids?: string[];
    remove_tag_ids?: string[];
    context?: string;
    session?: Record<string, string>;
};
export type UpdateUserResponse = BaseResponse;
export type MergeUserParams = {
    matchUserId: string;
    matchDecision: MatchDecision;
};
export type MatchDecision = 'merge' | 'reject';
export type MergeUserResponse = BaseResponse;
export type UnlinkUserParams = {
    zignalUserId: string;
    channel: ChannelType;
    userId: string;
};
export type UnlinkUserResponse = BaseResponse;
export type GetUserStatusesResponse = {
    statuses: Types.TTagOrStatusItem[];
};
export type CreateUserStatusParams = {
    name: string;
    color: string;
};
export type CreateUserStatusResponse = Types.TTagOrStatusItem;
export type CreateUserTagParams = {
    name: string;
    color: string;
};
export type GetUserTagsParams = {
    search?: string;
    limit?: number;
    offset?: number;
};
export type GetUserTagsResponse = {
    tags: Types.TTagOrStatusItem[];
    total: number;
};
export type CreateUserTagResponse = Types.TTagOrStatusItem;
export type CreateUserContextParams = {
    name: string;
};
export type CreateUserContextResponse = string;
export type UpdateUserStatusParams = {
    id: string;
    name: string;
    color: string;
};
export type UpdateUserStatusResponse = Types.TTagOrStatusItem;
export type DeleteUserStatusParams = {
    id: string;
    force?: boolean;
    checkOnly?: boolean;
};
export type DeleteUserStatusResponse = {
    total: number;
} & BaseResponse;
export type ReorderUserStatusParams = {
    id: string;
    sequence: number;
};
export type ReorderUserStatusResponse = BaseResponse;
export type UpdateUserTagParams = {
    id: string;
    name: string;
    color: string;
};
export type UpdateUserTagResponse = Types.TTagOrStatusItem;
export type DeleteUserTagParams = {
    id: string;
    force?: boolean;
    checkOnly?: boolean;
};
export type DeleteUserTagResponse = {
    affected_items?: number;
} & BaseResponse;
export type ReorderUserTagParams = {
    id: string;
    sequence: number;
};
export type ReorderUserTagResponse = BaseResponse;
export type SaveUserEventParams = {
    sessionId: string;
} & Types.BillingItem;
export type SaveUserEventResponse = Types.ChatMessageItem;
export type BaseResponse = {
    code?: string;
    message: string;
    success?: boolean;
};
export type GetSignedS3Params = {
    'file-name': string;
    'file-type': string;
    'folder-name': string;
};
export type GetSignedS3Response = {
    result: SignedS3Result;
} & BaseResponse;
export type SignedS3Result = {
    signedRequest: TSignedRequest;
    url: string;
};
export type TSignedRequest = {
    fields: Record<string, string>;
    url: string;
};
export type IUploadFieldToS3 = {
    file: File;
    filename: string;
    folder: 'sso' | 'zignal/media' | 'zignal/quick-message-template' | 'zignal/quick-message-library/image' | 'zignal/quick-message-library/file';
};
export type UsageType = 'chat' | 'quick_message_template';
export type GetFileSignParams = {
    fileName: string;
    usageType: UsageType;
};
export type GetFileSignResponse = {
    id: string;
    url: string;
    fields: Record<string, string>;
};
export type IUploadFieldToS3Service = {
    file: File;
    filename: string;
    usageType?: UsageType;
};
export type GetActivityLogParams = {
    type?: 'user' | 'group';
    channel: Types.ChannelType;
    id: string;
};
export type ActivityLogItem = {
    type: 'tag' | 'status';
    name: string;
    color: string;
};
export type GetActivityLogsResponse = {
    activity_logs: {
        id: string;
        sender: Types.ChatSender;
        action: 'add' | 'remove' | 'change';
        item: ActivityLogItem;
        from: ActivityLogItem;
        to: ActivityLogItem;
        type: MessageType;
        text: string;
        created_at: Date;
    }[];
};
export type GetReplyTokenInfoParams = {
    sessionId: string;
};
export type GetReplyTokenInfoResponse = {
    total: number;
    expired_at: string;
};
export type SyncMessageParams = {
    sessionId: string;
};
export type SyncMessageResponse = BaseResponse & {
    job_id: string;
};
export type SyncTagsParams = {
    sessionId: string;
};
export type SyncTagsResponse = BaseResponse & {
    job_id: string;
};
export type GetQuickMessageTemplatesParams = {
    search?: string;
    page?: number;
    limit?: number;
    is_zwiz?: boolean;
    connection_id?: string;
};
export type GetQuickMessageTemplatesResponse = {
    total: number;
    page: number;
    limit: number;
    total_pages: number;
    templates: Types.QuickMessageTemplate[];
};
export type CreateQuickMessageTemplateParams = Types.QuickMessageTemplate;
export type CreateQuickMessageTemplateResponse = Types.QuickMessageTemplate;
export type GetQuickMessageLibraryFilesParams = {
    fileType?: Types.QuickMessageLibraryFile['file_type'];
    search?: string;
    page?: number;
    limit?: number;
};
export type GetQuickMessageLibraryFilesResponse = {
    total: number;
    page: number;
    limit: number;
    total_pages: number;
    files: Types.QuickMessageLibraryFile[];
};
export type GetQuickMessageLibraryFilesUsageResponse = {
    total_storage_bytes: number;
};
export type QuickMessageLibraryFilePayload = {
    file_type: Types.QuickMessageLibraryFile['file_type'];
    name: string;
    url: string;
    size: number;
    file_id: string;
};
export type CreateQuickMessageLibraryFileParams = {
    files: QuickMessageLibraryFilePayload[];
};
export type CreateQuickMessageLibraryFileResponse = Types.QuickMessageLibraryFile[];
export type DeleteQuickMessageLibraryFileParams = {
    ids: string[];
};
export type DeleteQuickMessageLibraryFileResponse = BaseResponse;
export type UpdateQuickMessageLibraryFileNameParams = {
    id: string;
    name: string;
};
export type UpdateQuickMessageLibraryFileNameResponse = Types.QuickMessageLibraryFile;
export type SyncUserParams = {
    channel: Types.ChannelType;
    id: string;
};
export type ChatFilter = {
    id: string;
    name: string;
    search?: string;
    read?: boolean;
    type?: 'user' | 'group';
    connections?: FilterConnection[];
    last_answer_by_ids?: string[];
    status_ids?: string[];
    tag_ids?: string[];
    total_completed_verify_slip?: number;
    total_completed_verify_slip_more_than?: number;
    created_at?: string;
    updated_at?: string;
};
export type GetChatFiltersParams = {};
export type GetChatFiltersResponse = {
    filters: ChatFilter[];
};
export type FilterConnection = {
    id: string;
    channel: Types.ChannelType[];
};
export type CreateChatFilterParams = {
    name: string;
    search?: string;
    read?: boolean;
    type?: 'user' | 'group';
    connections?: FilterConnection[];
    last_answer_by_ids?: string[];
    status_ids?: string[];
    tag_ids?: string[];
    total_completed_verify_slip?: number;
    total_completed_verify_slip_more_than?: number;
};
export type CreateChatFilterResponse = {
    filter: ChatFilter;
};
export type UpdateChatFilterParams = {
    id: string;
    name?: string;
    search?: string;
    read?: boolean;
    type?: 'user' | 'group';
    connections?: FilterConnection[];
    last_answer_by_ids?: string[];
    status_ids?: string[];
    tag_ids?: string[];
    total_completed_verify_slip?: number;
    total_completed_verify_slip_more_than?: number;
};
export type UpdateChatFilterResponse = {
    filter: ChatFilter;
};
export type DeleteChatFilterParams = {
    id: string;
};
export type DeleteChatFilterResponse = BaseResponse;
export type GetChatFilterConfigResponse = {
    config: {
        isShowFilterType: boolean;
    };
};
export type ShopUrlType = 'normal' | 'new';
export type GetShopUrlParams = {
    connectionId: string;
    channel: ChannelType;
    userId: string;
    urlType: ShopUrlType;
};
export type GetShopUrlResponse = {
    url: string;
};
export type InitJobChannel = 'facebook' | 'instagram';
export type TransferJobChannel = 'zwiz';
export type InitConnectionParams = {
    connectionId: string;
    channel: InitJobChannel | TransferJobChannel;
    syncChatMessage?: boolean;
    syncTag?: boolean;
};
export type DeleteConnectionParams = {
    connectionId: string;
};
export type GetConnectionJobsResponse = {
    jobs: ConnectionJob[];
};
export type ConnectionJob = {
    id: string;
    name: string;
} & ({
    channel: InitJobChannel;
    init_state?: InitConnectionJobState;
} | {
    channel: TransferJobChannel;
    user?: InitConnectionJobState;
    chat_message?: InitConnectionJobState;
});
export type InitConnectionJobState = 'completed' | 'failed' | 'active' | 'delayed' | 'prioritized' | 'waiting' | 'waiting-children' | 'unknown' | 'removed';
export type ZwizUserCartItem = {
    product_id: number;
    option: string;
    quantity: number;
    name: string;
    photourl: string;
    price: number;
    discountprice: number;
};
export type GetUserCartParams = {
    connectionId: string;
    channel: string;
    userId: string;
};
export type GetUserCartResponse = {
    carts: ZwizUserCartItem[];
};
export type ClearUserCartParams = {
    connectionId: string;
    channel: string;
    userId: string;
};
export type ClearUserCartResponse = BaseResponse;
export type GetZwizCheckBotPageResponse = {
    pageid: string;
    pagename: string;
    ownerid: string;
    theme: string;
    status: boolean;
    pageshortlink: string;
    description: string | null;
    pagelogo: string | null;
    pageaddress: string;
    expireat: string;
    registerat: string;
    notify_admin: string | null;
    paypal_merchantid: string | null;
    persistent_menu: string;
    gbprime_status: boolean;
    line_channel_secret: string | null;
    line_liff_ecommerce: string | null;
    line_liff_transfer: string | null;
    line_liff_creditcard: string | null;
    wholesale_status: string | null;
    notreplyduplicateintent: string | null;
    replydelay: string | null;
    shoplang: string;
    shopcolor: string;
    notify_intent: boolean;
    notify_comment: boolean;
    notify_neworder: boolean;
    notify_payment: boolean;
    supportusers: string | null;
    newpremium: boolean;
    timetousebot: string | null;
    replycommentflag: boolean;
    useketshop: boolean;
    ketshop_api_key: string | null;
    ketshop_api_secret: string | null;
    wordscartsummary: string | null;
    wordsorders: string | null;
    likescount: string;
    notify_token_expired: boolean;
    statustoken: boolean;
    redeem_fail_attempts: string | null;
    redeem_fail_lock_timestamp: string | null;
    unlock_presets: boolean;
    selected_presets: string | null;
    fbpay_status: string | null;
    google_api_key: string | null;
    linepay_channel_id: string | null;
    linepay_channel_secret: string | null;
    editcartsummary_status: boolean;
    cartsummary_pattern1: string | null;
    cartsummary_pattern2: string | null;
    notcfduplicateproduct: boolean;
    get_started_data: string;
    unlock_getstarted: boolean;
    note: string | null;
    shippop_status: string | null;
    shippop_jsonvalue: string | null;
    synctagsfacebook_status: boolean;
    gbprime_publickey: string | null;
    gbprime_secretkey: string | null;
    gbprimecredit_status: boolean;
    akita_status: string | null;
    shopaddressarray: string | null;
    livechat_expireat: string | null;
    not_reply_within_ms: string | null;
    notify_neworder_ids: string | null;
    notify_payment_ids: string | null;
    notify_token_expired_ids: string | null;
    egg_crm_status: boolean;
    egg_crm_merchant_id: string | null;
    egg_crm_merchant_email: string | null;
    page_receipt_status: string | null;
    page_receipt_json: string | null;
    payment_slip_status: string | null;
    line_modular_botid: string | null;
    instagram_business_account: string | null;
    shop_addon_form_status: string | null;
    shop_addon_form_json: string | null;
    facebook_page_name: string;
    line_oa_name: string | null;
    facebook_page_id: string;
    advanced_expireat: string;
    privilege_type: string;
    packhai_status: string | null;
    instagram_name: string | null;
    line_oa_basic_id: string | null;
    buttons_cart_summary: string | null;
    akita_endpoint_url: string | null;
    is_allow_user_edit_order: string | null;
    line_auto_send_order_tracking_status: boolean;
    is_display_transport_weight: boolean;
    facebook_status: boolean;
    line_status: boolean;
    instagram_status: boolean;
    ketshop_api_url: string | null;
    is_hide_add_more_btn: string | null;
    facebook_ad_account_id: string | null;
    facebook_ad_account_name: string | null;
    notify_order_user_update_address: string | null;
    notify_order_user_update_address_ids: string | null;
    preset_name: string | null;
    notify_product_out_of_stock: string | null;
    notify_product_out_of_stock_ids: string | null;
    verify_slip_config: string | null;
    verify_slip_is_active: boolean;
    facebook_page_category: string;
    whatsapp_account_id: string | null;
    lock_facebook_insert_from_conversation_until_at: string | null;
    verify_slip_name_keywords: string | null;
    google_status: boolean;
    google_message_expireat: string | null;
    business_expireat: string | null;
    whatsapp_status: boolean;
    whatsapp_expireat: string | null;
    page_access_token_priority: string;
    notify_package_expired: string | null;
    notify_package_expired_ids: string | null;
    edit_order_buttons: string | null;
    notify_product_almost_out_of_stock: string | null;
    notify_product_almost_out_of_stock_ids: string | null;
    pay_solutions_setting: string | null;
    is_not_send_event_purchase_to_facebook: string | null;
    last_deactivated_replycommentflag_by_system_at: string | null;
    tiktok_advertiser_id: string | null;
    tiktok_event_set_id: string | null;
    is_enable_facebook_comment: boolean;
    tiktok_account_open_id: string | null;
    shipping_priority: string | null;
    order_tracking_message_setting: string | null;
    utm_source: string | null;
    tiktok_status: boolean;
    whatsapp_is_payment_error: string | null;
    facebook_ad_admin_id: string | null;
    is_facebook_mbe_token_expired: string | null;
    facebook_dataset_id: string;
    facebook_smc_catalog_id: string | null;
    shop_name: string | null;
    payment_2c2p_setting: string | null;
    facebook_smc_catalog_connected_at: string | null;
    tiktok_event_set_name: string | null;
    tiktok_account_username: string | null;
    billing_address: string | null;
    last_package_purchase_details: string | null;
    page_labels: string[];
    line_notify_modular_id: string | null;
    zignal_notify_settings: {
        notify_intent: boolean;
        notify_comment: boolean;
        notify_payment: boolean;
        notify_neworder: boolean;
        notify_token_expired: boolean;
        notify_payment_target: string | null;
        notify_neworder_target: string | null;
        notify_package_expired: boolean;
        notify_product_out_of_stock: boolean;
        notify_token_expired_target: string | null;
        notify_package_expired_target: string | null;
        notify_product_almost_out_of_stock: boolean;
        notify_product_out_of_stock_target: string | null;
        notify_product_almost_out_of_stock_target: string | null;
    };
    operation_schedule: string | null;
    able_to_activate_replycommentflag_at: string | null;
    admin_role_id: string;
    is_old_tiktok_account: boolean;
    zortout_is_active: boolean;
    scg_express_is_active: boolean;
    jt_express_is_active: boolean;
    line_my_shop_is_active: boolean;
    line_my_shop_api_key: string | null;
    line_my_shop_shop_url: string | null;
    line_my_shop_liff_shop_url: string | null;
    ninja_van_is_active: boolean;
    google_agent_id: string | null;
    google_brand_name: string | null;
    google_agent_name: string | null;
    google_agent_test_url: string | null;
    google_agent_config_json: string | null;
    sale_page_status: boolean;
    connect_zerva_business_profile_id: string | null;
    connect_zerva_shop_profile_setting_id: string | null;
    connect_zerva_shop_profile_setting_name: string | null;
    connect_zrm_business_profile_id: string | null;
    connect_zrm_shop_profile_setting_id: string | null;
    connect_zrm_shop_profile_setting_name: string | null;
    connect_zrm_membership_format_type: string | null;
    connect_zrm_membership_format_value: string | null;
    connect_sso_business_profile_id: string | null;
    connect_sso_member_email: string | null;
    connect_zpt_business_profile_id: string | null;
    connect_zpt_shop_profile_setting_id: string | null;
    connect_zpt_is_active: boolean;
    connect_zpt_is_facebook_comment_active: boolean;
    connect_zpt_is_instagram_comment_active: boolean;
    connect_zpt_is_tiktok_comment_active: boolean;
    connect_zpt_is_facebook_comment_reply_active: boolean;
    connect_zpt_is_instagram_comment_reply_active: boolean;
    connect_zpt_is_tiktok_comment_reply_active: boolean;
    connect_zpt_is_message_reply_active: boolean;
    connect_zpt_is_facebook_inbox_active: boolean;
    connect_zpt_is_facebook_message_reply_active: boolean;
    connect_zpt_is_line_inbox_active: boolean;
    connect_zpt_is_line_message_reply_active: boolean;
    connect_zpt_is_tiktok_inbox_active: boolean;
    connect_zpt_is_tiktok_message_reply_active: boolean;
    connect_zpt_is_instagram_inbox_active: boolean;
    connect_zpt_is_instagram_message_reply_active: boolean;
    connect_zpt_facebook_comment_specific_post_type: string | null;
    connect_zpt_facebook_comment_specific_post_data: string | null;
    connect_zpt_tiktok_comment_specific_post_type: string | null;
    connect_zpt_tiktok_comment_specific_post_data: string | null;
    connect_zpt_instagram_comment_specific_post_type: string | null;
    connect_zpt_instagram_comment_specific_post_data: string | null;
    connect_zpt_created_at: string | null;
    connect_zpt_created_by: string | null;
    connect_zpt_is_facebook_comment_enabled: boolean;
    connect_zpt_is_instagram_comment_enabled: boolean;
    connect_zpt_is_tiktok_comment_enabled: boolean;
    connect_zpt_is_facebook_comment_reply_emoji_active: boolean;
    connect_zpt_is_facebook_comment_reply_image_active: boolean;
    connect_zpt_is_facebook_comment_reply_sticker_active: boolean;
    connect_zpt_is_facebook_message_reply_emoji_active: boolean;
    connect_zpt_is_facebook_message_reply_image_active: boolean;
    connect_zpt_is_facebook_message_reply_sticker_active: boolean;
    connect_zpt_is_instagram_comment_reply_emoji_active: boolean;
    connect_zpt_is_instagram_comment_reply_image_active: boolean;
    connect_zpt_is_instagram_comment_reply_sticker_active: boolean;
    connect_zpt_is_instagram_message_reply_emoji_active: boolean;
    connect_zpt_is_instagram_message_reply_image_active: boolean;
    connect_zpt_is_instagram_message_reply_sticker_active: boolean;
    connect_zpt_is_tiktok_comment_reply_emoji_active: boolean;
    connect_zpt_is_tiktok_comment_reply_image_active: boolean;
    connect_zpt_is_tiktok_comment_reply_sticker_active: boolean;
    connect_zpt_is_tiktok_message_reply_emoji_active: boolean;
    connect_zpt_is_tiktok_message_reply_image_active: boolean;
    connect_zpt_is_tiktok_message_reply_sticker_active: boolean;
    connect_zpt_is_line_message_reply_emoji_active: boolean;
    connect_zpt_is_line_message_reply_image_active: boolean;
    connect_zpt_is_line_message_reply_sticker_active: boolean;
    connect_zpt_is_facebook_image_comment_enabled: boolean;
    connect_zpt_is_instagram_image_comment_enabled: boolean;
    connect_zpt_is_tiktok_image_comment_enabled: boolean;
    connect_zpt_is_facebook_image_comment_active: boolean;
    connect_zpt_is_instagram_image_comment_active: boolean;
    connect_zpt_is_tiktok_image_comment_active: boolean;
    connect_zpt_is_facebook_image_comment_reply_active: boolean;
    connect_zpt_is_instagram_image_comment_reply_active: boolean;
    connect_zpt_is_tiktok_image_comment_reply_active: boolean;
    connect_zpt_is_facebook_image_inbox_active: boolean;
    connect_zpt_is_facebook_image_message_reply_active: boolean;
    connect_zpt_is_line_image_inbox_active: boolean;
    connect_zpt_is_line_image_message_reply_active: boolean;
    connect_zpt_is_tiktok_image_inbox_active: boolean;
    connect_zpt_is_tiktok_image_message_reply_active: boolean;
    connect_zpt_is_instagram_image_inbox_active: boolean;
    connect_zpt_is_instagram_image_message_reply_active: boolean;
    connect_zpt_facebook_image_comment_specific_post_type: string | null;
    connect_zpt_facebook_image_comment_specific_post_data: string | null;
    connect_zpt_tiktok_image_comment_specific_post_type: string | null;
    connect_zpt_tiktok_image_comment_specific_post_data: string | null;
    connect_zpt_instagram_image_comment_specific_post_type: string | null;
    connect_zpt_instagram_image_comment_specific_post_data: string | null;
    connect_zignal_business_profile_id: string | null;
    connect_zignal_shop_profile_setting_id: string | null;
    connect_zignal_created_at: string | null;
    connect_zignal_created_by: string | null;
    event_start_with_nong_zee_at: string | null;
    event_setup_bot_at: string;
    packages: string[];
    pagetype: string;
    sokochan_info: string | null;
    lalamove_info: string | null;
};
export type ZervaProfile = {
    id: string;
    business_profile_id: string;
    name: string;
    description: string | null;
    shop_color: string;
    created_at: string;
    created_by: string;
    last_updated_at: string;
    last_updated_by: string;
    picture_url: string;
    picture_cover_url: string;
    is_active: boolean;
    first_page_type: string;
    is_enable_name_field: boolean;
    is_require_name_field: boolean;
    is_enable_phone_field: boolean;
    is_require_phone_field: boolean;
    is_enable_email_field: boolean;
    is_require_email_field: boolean;
    is_enable_note_field: boolean;
    is_require_note_field: boolean;
    currency_code: string;
    address_picture_url: string | null;
    address_detail: string | null;
    address_note: string | null;
    is_allowed_to_cancel_the_reservation: boolean;
    maximum_advance_reservation_within_minutes: number | null;
    minimum_advance_reservation_within_minutes: number | null;
    minimum_reservation_cancellation_within_minutes: number | null;
    premium_package_expiry_at: string | null;
    premium_id: string | null;
    is_sync_holiday: boolean | null;
    is_require_member: boolean | null;
    is_enable_gb_card: boolean | null;
    is_enable_gb_qr: boolean | null;
    gb_secret_key: string | null;
    gb_public_key: string | null;
    gb_token: string | null;
    shop_theme: string;
    default_theme: string;
    text_color: string;
    reserve_details: IReserveInfo[];
    is_enable_auto_confirm_reservation: boolean | null;
    auto_confirm_reservation_type: string | null;
    cancellation_note: string | null;
    sort_fields: ISortField[];
    is_enable_cancellation_reason: boolean | null;
    cancellation_reason_options: string[] | null;
    business_package_expiry_at: string | null;
    google_calendar_api_json: string | null;
    pay_solutions_setting: string | null;
    is_notify_email_customer_reserved: boolean;
    notify_email_customer_reserved_data: {
        subject: string;
    };
    is_notify_email_customer_confirmed: boolean;
    notify_email_customer_confirmed_data: {
        subject: string;
    };
    is_notify_email_customer_before_service: boolean;
    notify_email_customer_before_service_within_minutes: number | null;
    notify_email_customer_before_service_data: {
        subject: string;
    };
    is_notify_email_customer_completed: boolean;
    notify_email_customer_completed_data: {
        subject: string;
    };
    is_notify_email_customer_canceled: boolean;
    notify_email_customer_canceled_data: {
        subject: string;
    };
    is_allow_to_view_redeem_point_condition: boolean | null;
    earn_point_booking_status: string[];
    is_allow_customer_use_redeem: boolean | null;
    is_allow_customer_use_bank_transfer: boolean | null;
    is_enable_customer_profile: boolean | null;
    is_enable_address_field: boolean | null;
    is_require_address_field: boolean | null;
    is_full_address: boolean | null;
    is_enable_complete_reservation_status: boolean;
    complete_reservation_status: string | null;
    is_allow_to_use_coupon: boolean | null;
    seo_setting: string | null;
    tutorials: string[];
    enterprise_token: string | null;
    is_enable_branch: boolean;
    is_allow_cross_branch: boolean;
    branch_background: string | null;
    payment_2c2p_setting: string | null;
    is_enable_home: boolean;
    is_enable_review: boolean;
    is_allow_show_review: boolean;
    home_templates: string | null;
    rating: string;
    total_reviews: number;
    default_language: string;
    is_enable_zignal_notify: boolean;
};
export type GetZervaShopUrlParams = {
    channel: string;
    user_id: string;
    zerva_shop_profile_id: string;
};
export type GetZervaShopUrlResponse = {
    url: string;
};
export type GetZervaProfileResponse = {
    result: ZervaProfile;
};
export type GetZervaShopProfileSettingResponse = {
    result: {
        shop_profile_setting?: ZervaProfile[];
    };
};
export type GetZrmzShopUrlParams = {
    channel: string;
    user_id: string;
    zrmz_shop_profile_id: string;
    url_type: 'login' | 'register';
};
export type GetZrmzShopUrlResponse = {
    url: string;
};
export type GetZwizUserProfileResponse = {
    id: string;
    first_name: string;
    last_name: string;
    profile_pic: string;
    locale: string;
    timezone: string;
    gender: string;
    role: string;
    level: number;
    session: string;
    sessionvalue: string;
    lang: string;
    app: string;
    timestamp: string;
    sessiontoken: string;
    pageid: string;
    subscribe: boolean;
    subscribebroadcast: boolean;
    registertimestamp: string;
    context: string;
    email: string | null;
    phoneno: string | null;
    status: string | null;
    address: string | null;
    tags: string[] | null;
    usershoplang: string;
    endconversation: string | null;
    temp_msg: string;
    inboxurl: string;
    isNewimport: boolean;
    realname: string;
    lineid: string | null;
    school: string | null;
    province: string | null;
    adminname: string | null;
    cardnumber: string | null;
    log_intent_comment: string | null;
    echo_timestamp: string;
    payment_flag: string | null;
    registered_by: string | null;
    shipping_address_json: string | null;
    note: string | null;
    nickname: string | null;
    zrm_customer_id: string | null;
    is_blocked: boolean;
    is_blocked_by_user: boolean;
};
export type ZrmzShopProfile = {
    id: string;
    premium_id: string | null;
    name: string;
    description: string | null;
    shop_color: string;
    shop_secondary_color: string | null;
    picture_url: string | null;
    picture_cover_url: string | null;
    first_page_type: string;
    currency_code: string;
    is_enable_name_field: boolean;
    is_require_name_field: boolean;
    is_enable_phone_field: boolean;
    is_require_phone_field: boolean;
    is_enable_email_field: boolean;
    is_require_email_field: boolean;
    is_enable_note_field: boolean;
    is_require_note_field: boolean;
    address_picture_url: string | null;
    is_require_member: boolean;
    address_detail: string[];
    address_note: string | null;
    maximum_advance_reservation_within_minutes: number | null;
    minimum_advance_reservation_within_minutes: number | null;
    is_allowed_to_cancel_the_reservation: boolean;
    minimum_reservation_cancellation_within_minutes: number | null;
    is_premium_package: boolean;
    premium_package_expiry_at: string | null;
    remaining_days_of_premium_package: number;
    is_gold_package: boolean;
    gold_package_expiry_at: string | null;
    remaining_days_of_gold_package: number;
    is_platinum_package: boolean;
    platinum_package_expiry_at: string | null;
    remaining_days_of_platinum_package: number;
    is_bronze_package: boolean;
    bronze_package_expiry_at: string | null;
    remaining_days_of_bronze_package: number;
    is_enable_gb_card: boolean;
    is_enable_gb_qr: boolean;
    gb_secret_key: string | null;
    gb_public_key: string | null;
    gb_token: string | null;
    created_at: string;
    shop_theme: string | null;
    default_theme: string | null;
    membership_details: MemberInformation[];
    text_color: string | null;
    text_secondary_color: string | null;
    card_front_image_url: string | null;
    card_back_image_url: string | null;
    card_text_color: string | null;
    card_text_secondary_color: string | null;
    card_front_layout_template: string | null;
    card_back_layout_template: string | null;
    is_allow_member_view_points: boolean;
    is_allow_member_view_point_channel: boolean;
    is_allow_member_view_register: boolean;
    is_allow_member_view_service: boolean;
    is_allow_member_view_service_expiration: boolean;
    view_service_expiration_type: string;
    is_allow_member_view_credit_limit: boolean;
    is_allow_member_view_credit_limit_expiration: boolean;
    view_credit_limit_expiration_type: string | null;
    is_allow_member_view_points_expiration: boolean;
    view_points_expiration_type: string;
    register_type: 'phone' | 'email' | 'email_and_phone' | null;
    membership_format_type: string | null;
    membership_format_value: string[];
    is_require_gender_field: boolean;
    is_require_birth_field: boolean;
    is_require_address_field: boolean;
    is_full_address: boolean;
    is_enable_gender_field: boolean;
    is_enable_birth_field: boolean;
    is_enable_address_field: boolean;
    banner_picture_url: string | null;
    customer_no_prefix: string | null;
    sort_fields: ISortField[];
    is_allow_member_view_remark: boolean;
    remark: string | null;
    is_close_redeem_page: boolean;
    total_customers: number;
    total_redeem_rewards: number;
    is_allow_customer_use_bank_transfer: boolean;
    is_enable_basic_card: boolean;
    is_only_card_owner: boolean | null;
    total_reservation_this_month: number;
};
export interface ISortField {
    id?: string;
    type: SortType;
    title: string;
    priority: number;
}
export declare enum SortType {
    SYSTEM = "system",
    EXTRA = "extra"
}
export interface MemberInformation {
    title: string;
    required?: boolean;
    enable: boolean;
    editable: boolean;
    index?: number;
    type?: string | 'text' | 'textarea' | 'radio' | 'checkbox' | 'dropdown';
    type_options?: string[];
}
export interface IReserveInfo {
    id?: string;
    title: string;
    required?: boolean;
    enable: boolean;
    editable: boolean;
    type?: string | TCustomFieldType;
    type_options?: string[];
    enable_condition?: boolean;
    condition?: ICustomFieldCondition;
    allow_search?: boolean;
}
export type TCustomFieldType = 'text' | 'textarea' | 'radio' | 'checkbox' | 'dropdown' | 'image';
export interface ICustomFieldCondition {
    relate_field: string;
    relate_condition: ECustomFieldWhere;
    relate_value?: string;
}
export declare enum ECustomFieldWhere {
    CONTAIN = "contain",
    NOT_CONTAIN = "not_contain",
    IS = "is",
    IS_NOT = "is_not",
    IS_EMPTY = "is_empty",
    IS_NOT_EMPTY = "is_not_empty"
}
export type GetZrmzShopProfileResponse = {
    result: ZrmzShopProfile;
};
export type GetZrmzShopProfileSettingResponse = {
    result: {
        shop_profile_setting?: ZrmzShopProfile[];
    };
};
export type ZrmzCustomerInfo = {
    id: string;
    customer_no: number;
    first_name: string;
    last_name: string;
    picture_url: string | null;
    phone_number_country_code: string;
    phone_number: string;
    phone_number_validated_status: string;
    email: string;
    email_validated_status: string;
    gender: string | null;
    birth_date: string | null;
    address: string | null;
    custom_fields: any[];
    points_received: {
        amount: number;
        point_type: string;
    }[];
    points: {
        point_type: string;
        amount: number;
    }[];
    channel_connections: {
        facebook: {
            id: string;
            source: string;
            channel_id: string;
            channel_name: string;
            user_id: string;
            user_name: string;
            status: string;
            order_id: string | null;
        }[];
    };
    registration_date: string | null;
    last_login_date: string | null;
};
export type GetZrmzCustomerInfoParams = {
    connectionId: string;
    customerId: string;
};
export type GetZrmzCustomerInfoResponse = {
    result: ZrmzCustomerInfo;
};
export type ZrmzPointHistory = {
    total: number;
    transactions: {
        tid: string;
        channel: string | null;
        channel_name: string | null;
        point_type: string;
        amount: number;
        action: 'add' | 'remove';
        remark: string;
        image_url: string | null;
        expired_at: string | null;
        created_at: string;
        created_by: string;
    }[];
};
export type GetZrmzPointHistoryParams = {
    connectionId: string;
    customerId: string;
    limit?: number;
    offset?: number;
};
export type GetZrmzPointHistoryResponse = {
    result: ZrmzPointHistory;
};
export type UpdateZrmzCustomerParams = {
    connectionId: string;
    customer_id: string;
    first_name?: string;
    last_name?: string;
    email?: string;
    phone_number?: string;
    phone_number_country_code?: string;
};
export type UpdateZrmzCustomerResponse = {
    success: boolean;
    message: string;
    result: ZrmzCustomerInfo;
};
export type CreateZrmzCustomerParams = {
    connectionId: string;
    channel: string;
    user_id: string;
    phone_number?: string;
    phone_number_country_code?: string;
    email?: string;
};
export type CreateZrmzCustomerResponse = {
    success: boolean;
    message: string;
    result: {
        userid: string;
        pageid: string;
        zrm_customer_id: string;
    };
};
export type DisconnectZrmzCustomerParams = {
    connectionId: string;
    channel: string;
    user_id: string;
    customer_id: string;
};
export type DisconnectZrmzCustomerResponse = {
    success: boolean;
    message: string;
    result: {
        userid: string;
        pageid: string;
        customer_id: string;
    };
};
export type GetZrmzConditionParams = {
    connectionId: string;
};
export type ZrmzConditionDuration = {
    end_at: string;
    start_at: string;
};
export type ZrmzConditionValue = {
    ratio: number;
    point_id: string;
    point_quantity: number;
};
export type ZrmzCondition = {
    id: string;
    name: string;
    duration: ZrmzConditionDuration[];
    condition_type: string;
    condition_value: ZrmzConditionValue[];
    is_exclude_shipping_cost: boolean;
    is_active: boolean;
};
export type GetZrmzConditionResponse = {
    success: boolean;
    message: string;
    result: {
        is_allowed_sharing: boolean;
        conditions: ZrmzCondition[];
    };
};
export type AdjustZrmzCustomerPointParams = {
    connectionId: string;
    customer_id: string;
    point_type: string;
    amount: number;
    action: 'add' | 'remove';
    remark: string;
};
export type AdjustZrmzCustomerPointResponse = {
    success: boolean;
    message: string;
    result: {
        customer_id: string;
        point_type: string;
        balance: number;
    }[];
};
export type AdjustZrmzCustomerPointByConditionParams = {
    connectionId: string;
    customer_id: string;
    condition_id: string;
    value: number;
};
export type AdjustZrmzCustomerPointByConditionResponse = {
    success: boolean;
    message: string;
    result: {
        is_match: boolean;
        points: Record<string, number>;
        adjust: {
            customer_id: string;
            point_type: string;
            balance: number;
        };
    };
};
export type GetUserOrdersParams = {
    connectionId: string;
    channel: string;
    userId: string;
};
export type UserOrderProductDetail = {
    id: number;
    name: string;
    quantity: number;
    option: string;
    sku: string;
    cost: number;
    price: number;
    photourl: string;
    category: {
        id: number;
        name: string;
    };
    cart_remark: string;
    addon_json: Record<string, any>;
    price_per_unit: number;
    full_price_per_unit: number;
    adjust_qty: number | null;
};
export type UserOrderShippingAddress = {
    name: string;
    province: string;
    zipcode: string;
    district: string;
    sub_district: string;
    address: string;
    tel: string;
};
export type UserOrder = {
    id: number;
    amount: number;
    name_address: string;
    product_details: UserOrderProductDetail[];
    status: string;
    reason: string;
    remark: string;
    payment: string;
    tracking_no: string | null;
    timestamp: string;
    shipping_type: string;
    shipping_charge: number;
    shipping_address: UserOrderShippingAddress;
    cost: number;
    discount: number;
    total: number;
    invoice_no: string;
};
export type GetUserOrdersResponse = {
    orders: UserOrder[];
};
export type UpdateUserOrderParams = {
    connectionId: string;
    channel: string;
    userId: string;
    orderId: string;
    amount?: number;
    status?: string;
    trackingNo?: string;
    sendTrackingStatus?: boolean;
    reason?: string;
    sendReason?: boolean;
    shipping_address?: Types.UserAddress;
};
export type UpdateUserOrderResponse = BaseResponse;
export type GetUserTokenParams = {
    connectionId: string;
};
export type GetUserTokenResponse = {
    access_token: string;
    refresh_token: string;
};
export type BotAppsPlatformConnection = {
    zerva?: PlatformConnection;
    zrmz?: PlatformConnection;
    zpt?: PlatformConnection;
    zignal?: PlatformConnection[];
    zignal_chat?: PlatformConnection;
};
type PlatformConnection = {
    business_profile_id: string;
    shop_profile_setting_id: string;
};
export type GetPlatformConnectionsResponse = BaseResponse & {
    [botId: string]: BotAppsPlatformConnection;
};
export type GetNewReservationSummaryCustomerIdsParams = {
    business_profile_id: string;
    shop_profile_setting_id: string;
    booking_no?: string;
    customer_name?: string;
    customer_tel?: string;
    customer_email?: string;
    payment_status?: string;
    booking_status?: string;
    booking_start_date?: string;
    booking_end_date?: string;
    branch_ids?: string;
    sub_ids?: string;
};
export type GetNewReservationSummaryCustomerIdsResponse = BaseResponse & {
    result: {
        customer_ids: string[];
    };
};
export type GetCustomerIdsParams = {
    business_profile_id: string;
    shop_id?: string;
    search?: string;
    name?: string;
    phone_number_country_code?: string;
    phone_number?: string;
    email?: string;
    gender?: 'male' | 'female' | 'not-specified';
    channel?: 'facebook' | 'line' | 'instagram' | 'google' | 'whatsapp' | 'pos' | 'other' | 'shopee' | 'lazada' | 'tiktok' | 'line_shopping' | 'walkin';
    channel_status?: 'pending' | 'verified';
    channel_name?: string;
    channel_user?: string;
    facebook_name?: string;
    line_name?: string;
    birthdate_start?: string;
    birthdate_end?: string;
    point_received_type?: string;
    point_received_min?: number;
    point_received_max?: number;
    point_type?: string;
    point_min?: number;
    point_max?: number;
    point_expiration?: {
        point_type?: string;
        start?: Date;
        end?: Date;
    };
    service_amount?: {
        service_id?: string;
        min?: number;
        max?: number;
    };
    service_expiration?: {
        service_id?: string;
        start?: Date;
        end?: Date;
    };
    last_login_date?: {
        start?: Date;
        end?: Date;
    };
    card_id?: string;
    [key: string]: any;
    fund?: {
        name?: string;
        names?: string[];
        id_card?: string;
        is_active?: boolean;
        issue_date?: Date;
        maturity_date?: Date;
        min_fund_held?: number;
        max_fund_held?: number;
    };
    status?: string;
    is_active?: boolean;
    offset: number;
    limit: number;
    customer_no?: string;
    birth_month?: number;
};
export type GetCustomerIdsResponse = BaseResponse & {
    total: number;
    ids: string[];
};
export type Branch = {
    id: string;
    sequence: number | null;
    is_active: boolean;
    name: string;
    sku: string;
    description: string | null;
    image_url: string | null;
    address: string | null;
    google_maps_url: string | null;
    phone_number: string;
    total_services: number;
    service_ids: string[];
};
export type GetBranchesResponse = {
    branches: Branch[];
    total_no_branch_services: number;
};
export type GetBranchParams = {
    businessId: string;
    shopId: string;
};
export type ServiceSettingsResponse = {
    success: boolean;
    message: string;
    result: {
        service_settings: Record<string, ServiceSetting>;
    };
};
export type ServiceSetting = {
    name: string;
    sku: string | null;
    description: string;
    note: string | null;
    picture_url: string;
    priority: number;
    branch: ServiceBranch;
    sub_settings: Record<string, SubSetting>;
};
export type ServiceBranch = {
    id: string;
    name: string;
    description: string | null;
    image_url: string | null;
    address: string | null;
    google_maps_url: string | null;
    phone_number: string;
};
export type SubSetting = {
    name: string;
    picture_url: string;
    price: number;
    discount_price: number;
    service_details: string;
    reservation_notes: string | null;
    service_period_minutes: number | null;
    calendar_id: string;
    priority: number;
    reserve_details: ReserveDetail[] | null;
    addon_json: any | null;
    reserve_quantity: number;
    is_limit_reservation: boolean;
    limit_reservation_value: LimitReservationValue;
    is_not_allowed_consecutive: boolean;
    is_display_start_time: boolean;
    is_display_end_time: boolean;
};
export type ReserveDetail = {
    type: 'radio' | 'text' | 'textarea' | 'checkbox' | 'dropdown';
    title: string;
    enable: boolean;
    editable: boolean;
    priority: number;
    required: boolean;
    type_options: string[];
};
export type LimitReservationValue = {
    value: number;
    unit_type: string;
    unit_value: number;
};
export type GetSessionTokenParams = {
    connectionId: string;
    botId: string;
    channel: ChannelType;
    type: Types.SenderType;
    userId?: string;
    groupId?: string;
};
export type GetSessionTokenResponse = {
    adminid: string;
    sessiontoken: string;
    userid?: string;
    groupid?: string;
};
export type FilterType = 'quick' | 'advanced' | 'custom';
export type GetGroupMemberParams = {
    type?: 'user' | 'group';
    channel: Types.ChannelType;
    id: string;
};
export type GetGroupMemberResponse = {
    members: GroupMember[];
};
export type GroupMember = {
    id: string;
    name: string;
    nickname?: string;
    picture_url?: string | null;
};
export {};
