/// <reference types="node" />
/// <reference types="node" />
import { ReadStream } from "fs";
export interface TikTokResponse<Data = any> {
    message: string;
    code: number;
    data: Data;
    request_id: string;
}
export interface TikTokAuthorizedAccountResponse {
    list: TikTokAuthorizedAccountData[];
}
export interface TikTokVideoResponse {
    id: string;
    video_id: string;
    video_cover_url: string;
    format: string;
    preview_url: string;
    file_name: string;
    displayable: boolean;
    height: number;
    width: number;
    bit_rate: number;
    create_time: string;
    modify_time: string;
    signature: string;
    duration: number;
    size: number;
    fix_task_id: string;
    flaw_types: string[];
}
export interface TikTokAuthorizedAccountData {
    advertiser_id: string;
    advertiser_name: string;
}
export interface TikTokAccessTokenResponse {
    access_token: string;
    scope: number[];
    advertiser_ids: string[];
}
export declare type ServiceType = "AUCTION" | "RESERVATION";
export declare type ReportType = "BASIC" | "AUDIENCE" | "PLAYABLE_MATERIAL" | "CATALOG";
export declare const DATA_LEVELS: readonly ["AUCTION_AD", "AUCTION_ADGROUP", "AUCTION_ADVERTISER", "AUCTION_CAMPAIGN", "RESERVATION_AD", "RESERVATION_ADGROUP", "RESERVATION_ADVERTISER", "RESERVATION_CAMPAIGN"];
declare type DataLevelTuple = typeof DATA_LEVELS;
export declare type DataLevel = DataLevelTuple[number];
export declare type OrderType = "ASC" | "DESC";
export declare type QueryMode = "REGULAR" | "CHUNK";
export declare const FILTER_TYPES: readonly ["IN", "MATCH", "GREATER_EQUAL", "GREATER_THAN", "LOWER_EQUAL", "LOWER_THAN", "BETWEEN"];
declare type FilterTypeTuple = typeof FILTER_TYPES;
export declare type FilterType = FilterTypeTuple[number];
export interface Filtering<FieldName = string> {
    field_name: FieldName;
    filter_type: FilterType;
    filter_value: string | string[];
}
export declare const DIMENSION: readonly ["advertiser_id", "campaign_id", "adgroup_id", "ad_id", "stat_time_day", "stat_time_hour", "ac", "age", "country_code", "interest_category", "gender", "language", "placement", "platform"];
declare type DimensionTuple = typeof DIMENSION;
export declare type Dimension = DimensionTuple[number];
export declare const BASIC_FILTER_FIELDS: readonly ["campaign_ids", "campaign_type", "campaign_status", "adgroup_ids", "adgroup_status", "ad_ids", "ad_status", "promotion_type", "dpa_target_audience_type", "create_time"];
declare type BasicFilterFieldTuple = typeof BASIC_FILTER_FIELDS;
export declare type BasicFilterField = BasicFilterFieldTuple[number];
export declare const BASIC_DIMENSIONS: readonly ["advertiser_id", "campaign_id", "adgroup_id", "ad_id", "stat_time_day", "stat_time_hour", "country_code"];
declare type BasicDimensionTuple = typeof BASIC_DIMENSIONS;
export declare type BasicDimension = BasicDimensionTuple[number];
export declare const ATTRIBUTE_METRICS: string[];
declare type AttributeMetricTuple = typeof ATTRIBUTE_METRICS;
export declare type AttributeMetric = AttributeMetricTuple[number];
export declare const BASIC_DATA_METRICS: readonly ["spend", "cash_spend", "voucher_spend", "cpc", "cpm", "impressions", "clicks", "ctr", "reach", "cost_per_1000_reached", "conversion", "cost_per_conversion", "conversion_rate", "real_time_conversion", "real_time_cost_per_conversion", "real_time_conversion_rate", "result", "cost_per_result", "result_rate", "real_time_result", "real_time_cost_per_result", "real_time_result_rate", "secondary_goal_result", "cost_per_secondary_goal_result", "secondary_goal_result_rate", "frequency", "currency"];
declare type BasicDataMetricTuple = typeof BASIC_DATA_METRICS;
export declare type BasicDataMetric = BasicDataMetricTuple[number];
export declare const VIDEO_PLAY_METRICS: readonly ["video_play_actions", "video_watched_2s", "video_watched_6s", "average_video_play", "average_video_play_per_user", "video_views_p25", "video_views_p50", "video_views_p75", "video_views_p100", "engaged_view"];
declare type VideoPlayMetricTuple = typeof VIDEO_PLAY_METRICS;
export declare type VideoPlayMetric = VideoPlayMetricTuple[number];
export declare const ENGAGEMENT_METRICS: string[];
declare type EngagementMetricTuple = typeof ENGAGEMENT_METRICS;
export declare type EngagementMetric = EngagementMetricTuple[number];
export declare const ATTRIBUTION_METRICS: readonly ["vta_app_install", "vta_conversion", "cost_per_vta_conversion", "vta_registration", "cost_per_vta_registration", "vta_purchase", "cost_per_vta_purchase", "cta_app_install", "cta_conversion", "cost_per_cta_conversion", "cta_registration", "cost_per_cta_registration", "cta_purchase", "cost_per_cta_purchase"];
declare type AttributionMetricTuple = typeof ATTRIBUTION_METRICS;
export declare type AttributionMetric = AttributionMetricTuple[number];
export declare const PAGE_EVENT_METRICS: string[];
declare type PageEventMetricTuple = typeof PAGE_EVENT_METRICS;
export declare type PageEventMetric = PageEventMetricTuple[number];
export declare const ONSITE_EVENT_METRICS: readonly ["onsite_shopping_roas", "onsite_shopping", "onsite_initiate_checkout_count", "onsite_on_web_detail", "onsite_add_to_wishlist", "onsite_add_billing", "onsite_on_web_cart", "onsite_form", "onsite_download_start", "ix_page_view_count", "ix_button_click_count", "ix_product_click_count"];
declare type OnsiteEventMetricTuple = typeof ONSITE_EVENT_METRICS;
export declare type OnsiteEventMetric = OnsiteEventMetricTuple[number];
export declare const BASIC_METRICS: Readonly<BasicMetric[]>;
export declare type BasicMetric = AttributeMetric | BasicDataMetric | VideoPlayMetric | EngagementMetric | AttributeMetric | PageEventMetric | OnsiteEventMetric;
export declare type Metric = "campaign_name" | "spend" | "impressions" | "reach" | string;
export declare type BasicSyncReportRequest = Omit<SyncReportRequest<BasicDimension, BasicMetric, BasicFilterField>, "report_type">;
export interface SyncReportRequest<D = Dimension, M = Metric, FilterFieldName extends string = string> {
    advertiser_id: string;
    report_type: ReportType;
    service_type?: ServiceType;
    data_level: DataLevel;
    dimensions: D[];
    metrics?: M[];
    start_date?: string;
    end_date?: string;
    filtering?: Filtering<FilterFieldName>[];
    order_field?: string;
    order_type?: OrderType;
    query_mode?: QueryMode;
    page?: number;
    page_size?: number;
}
export interface ReportResponse<D extends string = Dimension, M extends string = Metric> {
    list: ReportData<D, M>[];
    page_info: PageInfo;
}
export declare type BasicReportResponse = ReportResponse<BasicDimension, BasicMetric>;
export interface ReportData<D extends string = Dimension, M extends string = Metric> {
    dimensions: Record<D, string>;
    metrics: Record<M, string>;
}
export interface PageInfo {
    page: number;
    page_size: number;
    total_number: number;
    total_page: number;
}
export interface UploadVideoRequest {
    advertiser_id: string;
    upload_type: UploadType;
    video_file: string | ReadStream | Buffer;
    video_signature: string;
    file_name?: string;
    is_third_party?: boolean;
    flaw_detect?: boolean;
    auto_fix_enabled?: boolean;
    auto_bind_enabled?: boolean;
}
export declare type UploadVideoFileRequest = Pick<UploadVideoRequest, "advertiser_id" | "is_third_party" | "flaw_detect" | "auto_bind_enabled" | "auto_fix_enabled" | "file_name">;
export declare enum UploadType {
    UPLOAD_BY_FILE = "UPLOAD_BY_FILE",
    UPLOAD_BY_URL = "UPLOAD_BY_URL",
    UPLOAD_BY_FILE_ID = "UPLOAD_BY_FILE_ID",
    UPLOAD_BY_VIDEO_ID = "UPLOAD_BY_VIDEO_ID"
}
export interface CommonRequestOptions<FilterFieldName extends string = string> {
    filtering?: Record<FilterFieldName | string, string | string[]>;
    page?: number;
    page_size?: number;
}
export declare const CAMPAIGN_FIELDS: readonly ["campaign_id", "campaign_name", "advertiser_id", "budget", "budget_mode", "operation_status", "objective", "objective_type", "create_time", "modify_time", "is_new_structure", "campaign_app_profile_page_state", "special_industries", "secondary_status"];
declare type CampaignFieldTuple = typeof CAMPAIGN_FIELDS;
export declare type CampaignField = CampaignFieldTuple[number];
export declare type CampaignFilterField = "campaign_ids" | "campaign_name" | "campaign_type" | "objective_type" | "primary_status" | "creation_filter_start_time" | "creation_filter_end_time" | "secondary_status";
export declare const ADGROUP_FIELDS: readonly ["advertiser_id", "campaign_id", "adgroup_id", "adgroup_name", "split_test_group_id", "split_test_status", "share_disabled", "placement_type", "placements", "inventory_filter_enabled", "comment_disabled", "app_id", "promotion_type", "store_id", "store_authorized_bc_id", "identity_id", "identity_type", "identity_authorized_bc_id", "app_download_url", "pixel_id", "optimization_event", "secondary_optimization_event", "creative_material_mode", "audience_ids", "excluded_audience_ids", "audience_rule", "audience_type", "location_ids", "is_hfss", "interest_category_ids", "interest_keyword_ids", "age_groups", "gender", "languages", "operating_systems", "network_types", "device_price_ranges", "min_android_version", "min_ios_version", "ios14_targeting", "device_model_ids", "household_income", "budget_mode", "budget", "scheduled_budget", "schedule_type", "schedule_start_time", "schedule_end_time", "dayparting", "optimization_goal", "bid_display_mode", "cpv_video_duration", "conversion_window (deprecated)", "pacing", "billing_event", "skip_learning_phase", "bid_type", "bid_price", "conversion_bid_price", "deep_bid_type", "deep_cpa_bid", "next_day_retention", "secondary_status", "operation_status", "frequency", "frequency_schedule", "statistic_type", "carrier_ids", "video_download_disabled", "blocked_pangle_app_ids", "actions", "action_period", "video_user_actions", "action_category_ids", "action_scene", "rf_purchased_type", "purchased_impression", "purchased_reach", "rf_estimated_cpr", "rf_estimated_frequency", "included_pangle_audience_package_ids", "excluded_pangle_audience_package_ids", "is_new_structure", "catalog_id", "product_set_id", "catalog_authorized_bc_id", "included_custom_actions", "excluded_custom_actions", "shopping_ads_retargeting_type", "brand_safety_type", "brand_safety_partner", "promotion_website_type", "ios14_quota_type", "roas_bid", "auto_targeting_enabled", "targeting_expansion", "adgroup_app_profile_page_state", "shopping_ads_type", "product_source"];
declare type AdGroupFieldTuple = typeof ADGROUP_FIELDS;
export declare type AdGroupField = AdGroupFieldTuple[number];
export declare type AdGroupFilterField = "adgroup_name" | "campaign_ids" | "adgroup_ids" | "objective_type" | "creation_filter_start_time" | "creation_filter_end_time" | "billing_events" | "primary_status" | "secondary_status";
export declare const AD_FIELDS: readonly ["advertiser_id", "campaign_id", "campaign_name", "adgroup_id", "adgroup_name", "ad_id", "ad_name", "identity_id", "identity_type", "identity_authorized_bc_id", "call_to_action", "call_to_action_id", "card_id", "secondary_status", "operation_status", "is_aco", "image_ids", "ad_format", "ad_text", "ad_texts", "video_id", "tiktok_item_id", "app_name", "landing_page_url", "landing_page_urls", "display_name", "profile_image_url", "impression_tracking_url", "click_tracking_url", "deeplink", "deeplink_type", "fallback_type", "playable_url", "page_id", "vast_moat_enabled", "creative_authorized", "is_new_structure", "create_time", "modify_time", "shopping_ads_fallback_type", "shopping_ads__deeplink_type", "shopping_ads_video_package_id", "promotional_music_disabled", "dark_post_status", "branded_content_disabled", "item_duet_status", "item_stitch_status", "brand_safety_postbid_partner", "product_specific_type", "catalog_id", "item_group_ids", "product_set_id", "sku_ids", "dynamic_format", "vertical_video_strategy", "dynamic_destination"];
declare type AdFieldTuple = typeof AD_FIELDS;
export declare type AdField = AdFieldTuple[number];
export declare type AdFilterField = "campaign_ids" | "adgroup_ids" | "ad_text" | "ad_ids" | "objective_type" | "creation_filter_start_time" | "creation_filter_end_time" | "billing_events" | "primary_status" | "secondary_status";
export declare enum CampaignSecondaryStatus {
    CAMPAIGN_STATUS_DELETE = "CAMPAIGN_STATUS_DELETE",
    CAMPAIGN_STATUS_ADVERTISER_AUDIT_DENY = "CAMPAIGN_STATUS_ADVERTISER_AUDIT_DENY",
    CAMPAIGN_STATUS_ADVERTISER_AUDIT = "CAMPAIGN_STATUS_ADVERTISER_AUDIT",
    ADVERTISER_CONTRACT_PENDING = "ADVERTISER_CONTRACT_PENDING",
    ADVERTISER_ACCOUNT_PUNISH = "ADVERTISER_ACCOUNT_PUNISH",
    CAMPAIGN_STATUS_BUDGET_EXCEED = "CAMPAIGN_STATUS_BUDGET_EXCEED",
    CAMPAIGN_STATUS_DISABLE = "CAMPAIGN_STATUS_DISABLE",
    CAMPAIGN_STATUS_ENABLE = "CAMPAIGN_STATUS_ENABLE",
    CAMPAIGN_STATUS_ALL = "CAMPAIGN_STATUS_ALL",
    CAMPAIGN_STATUS_NOT_DELETE = "CAMPAIGN_STATUS_NOT_DELETE"
}
export declare enum AdGroupSecondaryStatus {
    ADGROUP_STATUS_ALL = "ADGROUP_STATUS_ALL",
    ADGROUP_STATUS_NOT_DELETE = "ADGROUP_STATUS_NOT_DELETE",
    ADGROUP_STATUS_DELETE = "ADGROUP_STATUS_DELETE",
    ADGROUP_STATUS_CAMPAIGN_DELETE = "ADGROUP_STATUS_CAMPAIGN_DELETE",
    ADGROUP_STATUS_ADVERTISER_AUDIT_DENY = "ADGROUP_STATUS_ADVERTISER_AUDIT_DENY",
    ADGROUP_STATUS_ADVERTISER_AUDIT = "ADGROUP_STATUS_ADVERTISER_AUDIT",
    ADVERTISER_CONTRACT_PENDING = "ADVERTISER_CONTRACT_PENDING",
    ADVERTISER_ACCOUNT_PUNISH = "ADVERTISER_ACCOUNT_PUNISH",
    ADGROUP_STATUS_CAMPAIGN_EXCEED = "ADGROUP_STATUS_CAMPAIGN_EXCEED",
    ADGROUP_STATUS_BUDGET_EXCEED = "ADGROUP_STATUS_BUDGET_EXCEED",
    ADGROUP_STATUS_BALANCE_EXCEED = "ADGROUP_STATUS_BALANCE_EXCEED",
    ADGROUP_STATUS_AUDIT_DENY = "ADGROUP_STATUS_AUDIT_DENY",
    ADGROUP_STATUS_REAUDIT = "ADGROUP_STATUS_REAUDIT",
    ADGROUP_STATUS_AUDIT = "ADGROUP_STATUS_AUDIT",
    ADGROUP_STATUS_CREATE = "ADGROUP_STATUS_CREATE",
    ADGROUP_STATUS_FROZEN = "ADGROUP_STATUS_FROZEN",
    ADGROUP_STATUS_NOT_START = "ADGROUP_STATUS_NOT_START",
    ADGROUP_STATUS_TIME_DONE = "ADGROUP_STATUS_TIME_DONE",
    ADGROUP_STATUS_CAMPAIGN_DISABLE = "ADGROUP_STATUS_CAMPAIGN_DISABLE",
    ADGROUP_STATUS_DISABLE = "ADGROUP_STATUS_DISABLE",
    ADGROUP_STATUS_DELIVERY_OK = "ADGROUP_STATUS_DELIVERY_OK",
    ADGROUP_STATUS_SHADOW_ADGROUP_REAUDIT = "ADGROUP_STATUS_SHADOW_ADGROUP_REAUDIT",
    ADGROUP_STATUS_PIXEL_UNBIND = "ADGROUP_STATUS_PIXEL_UNBIND",
    ADGROUP_STATUS_LIVE_OFFLINE = "ADGROUP_STATUS_LIVE_OFFLINE",
    ADGROUP_STATUS_PARTIAL_AUDIT_NO_DELIVERY = "ADGROUP_STATUS_PARTIAL_AUDIT_NO_DELIVERY",
    ADGROUP_STATUS_PARTIAL_AUDIT_DELIVERY_OK = "ADGROUP_STATUS_PARTIAL_AUDIT_DELIVERY_OK",
    ADGROUP_STATUS_INDUSTRY_QUALIFICATION_MISSING = "ADGROUP_STATUS_INDUSTRY_QUALIFICATION_MISSING",
    ADGROUP_STATUS_INDUSTRY_QUALIFICATION_EXPIRED = "ADGROUP_STATUS_INDUSTRY_QUALIFICATION_EXPIRED",
    ADGROUP_STATUS_INDUSTRY_QUALIFICATION_DENY = "ADGROUP_STATUS_INDUSTRY_QUALIFICATION_DENY"
}
export declare enum AdSecondaryStatus {
    AD_STATUS_ALL = "AD_STATUS_ALL",
    AD_STATUS_NOT_DELETE = "AD_STATUS_NOT_DELETE",
    AD_STATUS_CAMPAIGN_DELETE = "AD_STATUS_CAMPAIGN_DELETE",
    AD_STATUS_ADGROUP_DELETE = "AD_STATUS_ADGROUP_DELETE",
    AD_STATUS_DELETE = "AD_STATUS_DELETE",
    AD_STATUS_ADVERTISER_AUDIT_DENY = "AD_STATUS_ADVERTISER_AUDIT_DENY",
    AD_STATUS_ADVERTISER_AUDIT = "AD_STATUS_ADVERTISER_AUDIT",
    ADVERTISER_CONTRACT_PENDING = "ADVERTISER_CONTRACT_PENDING",
    ADVERTISER_ACCOUNT_PUNISH = "ADVERTISER_ACCOUNT_PUNISH",
    AD_STATUS_BALANCE_EXCEED = "AD_STATUS_BALANCE_EXCEED",
    AD_STATUS_CAMPAIGN_EXCEED = "AD_STATUS_CAMPAIGN_EXCEED",
    AD_STATUS_BUDGET_EXCEED = "AD_STATUS_BUDGET_EXCEED",
    AD_STATUS_AUDIT = "AD_STATUS_AUDIT",
    AD_STATUS_REAUDIT = "AD_STATUS_REAUDIT",
    AD_STATUS_AUDIT_DENY = "AD_STATUS_AUDIT_DENY",
    AD_STATUS_ADGROUP_AUDIT_DENY = "AD_STATUS_ADGROUP_AUDIT_DENY",
    AD_STATUS_ADGROUP_PARTIAL_AUDIT_NO_DELIVERY = "AD_STATUS_ADGROUP_PARTIAL_AUDIT_NO_DELIVERY",
    AD_STATUS_PARTIAL_AUDIT_DELIVERY_OK = "AD_STATUS_PARTIAL_AUDIT_DELIVERY_OK",
    AD_STATUS_PARTIAL_AUDIT_NO_DELIVERY = "AD_STATUS_PARTIAL_AUDIT_NO_DELIVERY",
    AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_MISSING = "AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_MISSING",
    AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_EXPIRED = "AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_EXPIRED",
    AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_DENY = "AD_STATUS_ADGROUP_INDUSTRY_QUALIFICATION_DENY",
    AD_STATUS_MUSIC_AUTHORIZATION_MISSING = "AD_STATUS_MUSIC_AUTHORIZATION_MISSING",
    AD_STATUS_PIXEL_UNBIND = "AD_STAUS_PIXEL_UNBIND",
    AD_STATUS_LIVE_OFFLINE = "AD_STATUS_LIVE_OFFLINE",
    AD_STATUS_NOT_START = "AD_STATUS_NOT_START",
    AD_STATUS_DONE = "AD_STATUS_DONE",
    AD_STATUS_CAMPAIGN_DISABLE = "AD_STATUS_CAMPAIGN_DISABLE",
    AD_STATUS_ADGROUP_DISABLE = "AD_STATUS_ADGROUP_DISABLE",
    ADGROUP_STATUS_FROZEN = "ADGROUP_STATUS_FROZEN",
    AD_STATUS_DISABLE = "AD_STATUS_DISABLE",
    AD_STATUS_DELIVERY_OK = "AD_STATUS_DELIVERY_OK",
    AD_STATUS_PROCESS_AUDIO = "AD_STATUS_PROCESS_AUDIO"
}
export declare enum AdAccountStatus {
    STATUS_DISABLE = "STATUS_DISABLE",
    STATUS_PENDING_CONFIRM = "STATUS_PENDING_CONFIRM",
    STATUS_PENDING_VERIFIED = "STATUS_PENDING_VERIFIED",
    STATUS_CONFIRM_FAIL = "STATUS_CONFIRM_FAIL",
    STATUS_ENABLE = "STATUS_ENABLE",
    STATUS_CONFIRM_FAIL_END = "STATUS_CONFIRM_FAIL_END",
    STATUS_PENDING_CONFIRM_MODIFY = "STATUS_PENDING_CONFIRM_MODIFY",
    STATUS_CONFIRM_MODIFY_FAIL = "STATUS_CONFIRM_MODIFY_FAIL",
    STATUS_LIMIT = "STATUS_LIMIT",
    STATUS_WAIT_FOR_BPM_AUDIT = "STATUS_WAIT_FOR_BPM_AUDIT",
    STATUS_WAIT_FOR_PUBLIC_AUTH = "STATUS_WAIT_FOR_PUBLIC_AUTH",
    STATUS_SELF_SERVICE_UNAUDITED = "STATUS_SELF_SERVICE_UNAUDITED",
    STATUS_CONTRACT_PENDING = "STATUS_CONTRACT_PENDING"
}
export interface CommonResponse<Field extends string = string> {
    list: Record<Field, any>[];
    page_info: PageInfo;
}
export declare type VideoFilterField = "height" | "video_ids" | "material_ids" | "ratio" | "width" | "displayable";
export declare const VIDEO_FIELDS: readonly ["displayable", "width", "video_cover_url", "bit_rate", "format", "preview_url", "duration", "height", "signature", "video_id", "size", "material_id", "allowed_placements", "allow_download", "file_name", "create_time", "modify_time"];
declare type VideoFieldTuple = typeof AD_ACCOUNT_FIELDS;
export declare type VideoField = VideoFieldTuple[number];
export declare type CampaignResponse = CommonResponse<CampaignField>;
export declare type AdGroupResponse = CommonResponse<AdGroupField>;
export declare type AdResponse = CommonResponse<AdField>;
export declare type AdAccountResponse = CommonResponse<AdAccountField>;
export declare type VideoResponse = CommonResponse<VideoField>;
export declare const AD_ACCOUNT_FIELDS: readonly ["telephone_number", "contacter", "currency", "cellphone_number", "timezone", "advertiser_id", "role", "company", "status", "description", "rejection_reason", "address", "name", "language", "industry", "license_no", "email", "license_url", "country", "balance", "create_time", "display_timezone", "owner_bc_id"];
declare type AdAccountFieldTuple = typeof AD_ACCOUNT_FIELDS;
export declare type AdAccountField = AdAccountFieldTuple[number];
export declare const TikTokReportField: Partial<Record<BasicMetric, BasicMetric>>;
export {};
