export declare class AbTestPreviewSettingsBase<T> {
    id: TestId;
    method: Method;
    name: string;
    segment: string;
    variations: T[];
}
export declare class AbTestDraftPreviewSettingsDTO extends AbTestPreviewSettingsBase<AbTestVariationDTO> {
    variations: AbTestVariationDTO[];
}
export declare class AbTestPreviewSettingsDTO extends AbTestPreviewSettingsBase<AbTestVariationDTO> {
    variations: AbTestVariationDTO[];
}
export interface AbTestVariation {
    base: boolean;
    id: string;
    name: string;
}
export declare class AbTestVariationDTO implements AbTestVariation {
    base: boolean;
    id: string;
    name: string;
}
export declare class AbstractFacebookPixelEvent<D> {
    d: D;
    n: string;
}
export declare class AbstractStacklaPixelEvent<D> {
    d: D;
    n: string;
}
export declare class JacksonBean {
}
export declare class PublicJacksonBean extends JacksonBean {
}
export declare class ActiveVisitDTO extends PublicJacksonBean {
    customer: CustomerDTO;
    visit: VisitDTO;
}
export interface AnalyticEvent {
}
export declare class BigcommerceCustomerInfo extends PublicJacksonBean {
    customer_reference: string;
    email: string;
    first_name: string;
    group_id: string;
    last_name: string;
    marketing_permission: boolean;
}
export declare class NostoIdentifierObjectId<T> implements Comparable<T> {
    id: string;
}
export declare class CampaignId<T> extends NostoIdentifierObjectId<T> {
    feature: OnsiteFeature;
}
export declare class CartItem implements Serializable, CartItemFields {
    name: string;
    price_currency_code: string;
    product_id: string;
    quantity: number;
    sku_id: string;
    unit_price: number;
}
export interface CartItemFields {
    name: string;
    price_currency_code: string;
    product_id: string;
    quantity: number;
    sku_id: string;
    unit_price: number;
}
export declare class ClientScriptSettingsDTO extends PublicJacksonBean {
    account: string;
    addToCartPopup: boolean;
    anyDomain: boolean;
    browserQueueActive: boolean;
    cmpMode: string;
    collectEmailFromURL: boolean;
    cookieTime: number;
    debugRedirectUrl: string;
    defaultCurrencyCode: string;
    defaultVariantId: string;
    disablePlacementAntiFlickering: boolean;
    discountPopupTriggers: {
        [index: string]: PopupTriggerSettingsDTO[];
    };
    discountPopupVisible: boolean;
    emailAddressUrlParamName: string;
    exchangeRates: boolean;
    externalIdentifier: string;
    extraHosts: string[];
    fullTaggingRequired: boolean;
    intersectionObserved: string[];
    jsErrorUrl: string;
    measurePerformance: boolean;
    mutationObserved: string[];
    nostoRefParam: string;
    obfuscateCustomerCookie: boolean;
    pageTypeFiltersForUntaggedPages: boolean;
    parameterlessAttribution: boolean;
    placements: {
        [index: string]: DynamicPlacementDTO;
    };
    popupRibbonUrlFilter: boolean;
    recoveryPopupEnabled: boolean;
    searchApiUrl: string;
    searchDeploymentId: string;
    searchEnabled: boolean;
    searchQueryParam: string;
    searchTemplateHost: string;
    secureCookie: boolean;
    segmentUrlParameters: string[];
    sendTaggingOnlyIfNeeded: boolean;
    server: string;
    serverProductPlacementFiltering: boolean;
    shopifyCmpRedirect: boolean;
    shopifySkuSelectionListener: boolean;
    site: string;
    sourceParameterName: string;
    stacklaEmbedCodeEndpoint: string;
    stacklaWidgetAssetPath: string;
    stacklaWidgetDomain: string;
    subDomain: string;
    trackingTypes: string[];
    triggerAddToCartPopupWithCookie: boolean;
}
export interface Comparable<T> {
}
export declare class ConditionDTO {
    advanced: boolean;
    brands: string[];
    categories: string[];
    exc_brands: string[];
    exc_categories: string[];
    exc_locations: string[][];
    exc_page_types: PageType[];
    exc_referer_urls: string[];
    exc_tags: string[];
    exc_url_parameters: string[];
    exc_urls: string[];
    hide_on_desktop: boolean;
    hide_on_mobile: boolean;
    locations: string[][];
    max_cart_size: number;
    max_cart_value: number;
    max_page_views: number;
    min_cart_size: number;
    min_cart_value: number;
    min_page_views: number;
    page_types: PageType[];
    referer_urls: string[];
    tags: string[];
    treat_url_conditions_as_filters: boolean;
    url_parameters: string[];
    urls: string[];
}
export declare class ContentDebugDTO {
    divIds: string[];
    enabled: boolean;
    id: ContentId;
    name: string;
    rendered: boolean;
}
export declare class ContentId extends CampaignId<ContentId> {
}
export declare class ConversionItem extends JacksonBean implements CartItemFields {
    name: string;
    price_currency_code: string;
    product_id: string;
    quantity: number;
    sku_id: string;
    unit_price: number;
}
export declare class CrawlResponse extends PublicJacksonBean {
    message: string;
    product_id: string;
}
export declare class CustomerAffinityResponse extends PublicJacksonBean {
    top_brands: CustomerAffinityResponseItem[];
    top_categories: CustomerAffinityResponseItem[];
    top_skus: {
        [index: string]: CustomerAffinityResponseItem[];
    };
}
export declare class CustomerAffinityResponseItem extends JacksonBean {
    name: string;
    score: number;
}
export declare class CustomerDTO extends PublicJacksonBean {
    id: string;
    marketing_permission: boolean;
    ref: string;
}
export interface CustomerData {
    customer_reference?: string;
    discontinued?: boolean;
    email?: string;
    first_name?: string;
    last_name?: string;
    newsletter?: boolean;
}
export declare class CustomerToken extends PublicJacksonBean {
    token: string;
}
export declare class DebugRequestParamsDTO {
    at?: Date;
    ep: boolean;
    fs: string[];
    tp?: TestPreviewsDTO;
}
export declare class Record {
}
export declare class DebugToolbarDataDTO extends Record {
    contentCampaigns: ContentDebugDTO[];
    dev: boolean;
    draftTests: AbTestDraftPreviewSettingsDTO[];
    loggedIn: boolean;
    placements: PlacementDebugDTO[];
    placementsTab: boolean;
    popupPreviewSettings: PopupCampaignPreviewSettingsDTO[];
    recommendationCampaigns: RecommendationDebugDTO[];
    richSegmentsTab: boolean;
    runningTests: AbTestPreviewSettingsDTO[];
    segments: SegmentDebugDTO[];
    showImprovedCampaignOverlayData: boolean;
    showStacklaTab: boolean;
    showTestsTab: boolean;
    stacklaWidgets: StacklaWidgetDebugDTO[];
}
export declare class DynamicPlacementDTO {
    cssSelector: string;
    enabled: boolean;
    filters: FilterRule[];
    id: string;
    intersection: boolean;
    mode: InsertMode;
    mutation: boolean;
    wrapper: WrapMode;
}
export declare class Effect {
    delay_min: number;
    re_entry_tolerance: number;
    scroll_min: number;
}
export declare class EventAttributionMetadata extends PublicJacksonBean {
    customer_reference: string;
    event_date: Date;
    referrer: string;
    url: string;
}
export declare class EventAttributionParams extends PublicJacksonBean {
    events: EventFields[];
    metadata: EventAttributionMetadata;
}
export interface EventFields {
    event_ref_type: string;
    event_type: string;
    ref: string;
    ref_src: string;
    target: string;
    target_fragment: string;
}
export interface EventRequest extends RawEvents {
    cart_product_ids: string[];
    categories: string[];
    category_ids: string[];
    customer_reference: string;
    date: Date;
    mail_ref: string;
    mail_type: string;
    page_type: PageType;
    reference: string;
    referrer: string;
    sort_order: string;
    url: string;
}
export declare class EventRequestMessage extends PublicJacksonBean implements EventRequest {
    cart_cookie_hash: string;
    cart_product_ids: string[];
    cart_total_price?: number;
    cart_total_size: number;
    categories: string[];
    category_ids: string[];
    current_variant: string;
    custom_fields: {
        [index: string]: string[];
    };
    customer_reference: string;
    date: Date;
    debug?: DebugRequestParamsDTO;
    debug_code: string;
    elements: string[];
    events: EventFields[];
    mail_ref: string;
    mail_type: string;
    page_type: PageType;
    preview: boolean;
    recotrace: string;
    reference: string;
    referrer: string;
    render_mode?: RenderMode;
    segment_codes: string[];
    show_cart_popup_recommendations: boolean;
    sort_order: string;
    tags: string[];
    url: string;
}
export declare class EventRequestMessageV1 extends EventRequestMessage {
    cart: CartItem[];
    cart_hash: string;
    cart_popup: boolean;
    coupon_campaign: string;
    coupon_code: string;
    coupon_used: boolean;
    current_variant_id: string;
    customer: PushedCustomer;
    debug_token: string;
    event_date: Date;
    experiments: Experiment[];
    external_identifier: string;
    ref: string;
    response_mode?: RenderMode;
    restore_link: string;
    skipcache: boolean;
}
export declare class EventResponseMessage extends PublicJacksonBean {
    af: CustomerAffinityResponse;
    cdc: string;
    cmpid: string;
    cpr: string;
    cs: number;
    ct: number;
    customer: string;
    debug: DebugToolbarDataDTO;
    ed: Date;
    errors: string[];
    fb: FacebookData;
    ga: GoogleAnalyticsData;
    gl: string[];
    he: boolean;
    hiic: boolean;
    js: string;
    nc: boolean;
    pv: number;
    recommendations: {
        [index: string]: any;
    };
    se: SegmentsResponseBean;
    sp: StacklaTrackingData;
    visit: string;
}
export declare class Events {
}
export declare class Experiment extends PublicJacksonBean {
    id: string;
    id_stamp: string;
    name: string;
    variation: string;
    variation_name: string;
}
export declare class FacebookData {
    a: string;
    e: AbstractFacebookPixelEvent<any>[];
    p: string;
    s: string[];
}
export declare class FilterRule {
    field: string;
    negate: boolean;
    operator: FilterOperator;
    values: any[];
}
export declare class ForcedTestDTO extends Record {
    t: TestId;
    v: string;
}
export declare class GoogleAnalyticsData extends PublicJacksonBean {
    s: string[];
}
export interface NostoProduct<SKU> extends NostoVariant, TaggedProduct<SKU> {
    inventory_level: number;
    real_variant_ids: string[];
    saleable: boolean;
    supplier_cost: number;
}
export interface NostoSku extends Validated, Sku {
    inventory_level: number;
}
export interface NostoVariant extends Validated {
    availability: string;
    available: boolean;
    discounted: boolean;
    list_price: number;
    price: number;
    price_currency_code: string;
    price_text: string;
}
export declare class OrderCustomer extends PublicJacksonBean implements OrderInfoFields {
    country: string;
    country_code: string;
    customer_reference?: string;
    discontinued?: boolean;
    email?: string;
    first_name?: string;
    last_name?: string;
    order_number: string;
    phone: string;
    phone_number: string;
    post_code: string;
    type: string;
    zip_code: string;
}
export interface OrderInfoFields extends CustomerData {
    country_code: string;
    order_number: string;
    phone_number: string;
    type: string;
    zip_code: string;
}
export interface OrderStatus extends Comparable<OrderStatus> {
    date: Date;
    order_status: string;
    payment_provider: string;
}
export declare class PlacementDebugDTO extends Record {
    activeRule: SegmentRuleDebugDTO;
    divId: string;
    enabled: boolean;
    id: string;
    name: string;
    rules: PlacementRuleDTO[];
}
export interface PlacementRule<T> {
    feature: OnsiteFeature;
    segment: string;
    to: T;
}
export declare class PlacementRuleDTO extends Record {
    feature: OnsiteFeature;
    segment: string;
    to: CampaignId<any>;
}
export declare class PopupCampaignPreviewSettingsDTO {
    campaign_id: string;
    campaign_title: string;
    condition: ConditionDTO;
    enabled: boolean;
    popup_id: string;
    type: string;
}
export declare class PopupCouponGiven extends PublicJacksonBean implements PopupEvent {
    campaignId: string;
    campaign_id: string;
}
export declare class PopupEmailCollected extends PublicJacksonBean implements PopupEvent {
    campaignId: string;
    campaign_id: string;
}
export interface PopupEvent extends AnalyticEvent {
    campaign_id: string;
}
export declare class PopupTriggerSettingsDTO {
    condition: ConditionDTO;
    effect: Effect;
    enabled: boolean;
    id: string;
    name: string;
    ordinal: number;
    popup_id: string;
}
export declare class PopupTriggered extends PublicJacksonBean implements PopupEvent {
    campaignId: string;
    campaign_id: string;
}
export declare class ProductPushResponse extends PublicJacksonBean {
    messages: string[];
}
export declare class PushedCustomer extends PublicJacksonBean {
    customer_reference: string;
    email: string;
    first_name: string;
    hcid: string;
    last_name: string;
    newsletter: boolean;
    order_number: string;
    source: string;
    source_id: string;
    type: string;
}
export declare class PushedProduct extends PublicJacksonBean implements NostoProduct<PushedProductSKU> {
    age_group: string;
    alternate_image_urls: string[];
    availability: string;
    available: boolean;
    brand: string;
    categories: string[];
    category: string[];
    category_id: string[];
    category_ids: string[];
    condition: string;
    custom_fields: {
        [index: string]: string;
    };
    date_published: Date;
    description: string;
    discounted: boolean;
    gender: string;
    google_category: string;
    gtin: string;
    image_url: string;
    inventory_level: number;
    list_price: number;
    name: string;
    partial_variants: {
        [index: string]: NostoVariant;
    };
    price: number;
    price_currency_code: string;
    price_text: string;
    product_id: string;
    rating_value: number;
    real_variant_ids: string[];
    review_count: number;
    saleable: boolean;
    skus: PushedProductSKU[];
    supplier_cost: number;
    tags1: string[];
    tags2: string[];
    tags3: string[];
    thumb_url: string;
    unit_pricing_base_measure: number;
    unit_pricing_measure: number;
    unit_pricing_unit: string;
    url: string;
    variant_id: string;
    variation_id: string;
    variations: {
        [index: string]: PushedVariation;
    };
}
export declare class PushedProductSKU extends JacksonBean implements NostoSku {
    availability: string;
    custom_fields: {
        [index: string]: string;
    };
    gtin: string;
    id: string;
    image_url: string;
    inventory_level: number;
    list_price: number;
    name: string;
    price: number;
    url: string;
}
export declare class PushedVariation extends PublicJacksonBean implements NostoVariant {
    availability: string;
    available: boolean;
    discounted: boolean;
    list_price: number;
    price: number;
    price_currency_code: string;
    price_text: string;
}
export interface RawEvents {
    events: EventFields[];
}
export declare class RecommendationDebugDTO extends Record {
    divId: string;
    divIds: string[];
    enabled: boolean;
    fbLink: string;
    fbTitle: string;
    fbType: string;
    filtered: boolean;
    id: RecommendationId;
    ittt: boolean;
    link: string;
    productIds: {
        [index: string]: string;
    };
    recoId: string;
    rendered: boolean;
    resultType: string;
    title: string;
    type: string;
    variant: boolean;
}
export declare class RecommendationId extends CampaignId<RecommendationId> {
}
export declare class SearchClick extends PublicJacksonBean implements SearchEvent {
    metadata: SearchEventMetadata;
    productId: string;
}
export interface SearchEvent extends AnalyticEvent {
    metadata: SearchEventMetadata;
}
export declare class SearchEventMetadata extends PublicJacksonBean {
    hasResults: boolean;
    isAutoComplete: boolean;
    isAutoCorrect: boolean;
    isOrganic: boolean;
    isRefined: boolean;
    isSorted: boolean;
    query: string;
    refinedQuery: string;
    resultId: string;
}
export declare class SearchImpression extends PublicJacksonBean implements SearchEvent {
    metadata: SearchEventMetadata;
    page: number;
    productIds: string[];
}
export declare class SegmentDebugDTO {
    active: boolean;
    forced: boolean;
    id: string;
    name: string;
}
export declare class SegmentInfoBean extends JacksonBean {
    id: string;
}
export declare class SegmentRuleDebugDTO extends Record {
    draft: TestDebugDTO;
    segment: string;
    test: TestDebugDTO;
    to: CampaignId<any>;
    type: TargetType;
}
export declare class SegmentsResponseBean extends PublicJacksonBean {
    active_segments: SegmentInfoBean[];
}
export interface Serializable {
}
export interface Sku {
    availability: string;
    custom_fields: {
        [index: string]: string;
    };
    gtin: string;
    id: string;
    image_url: string;
    list_price: number;
    name: string;
    price: number;
    url: string;
}
export declare class StacklaTrackingData {
    e: AbstractStacklaPixelEvent<any>[];
}
export declare class StacklaWidgetDebugDTO {
    divIds: string[];
    enabled: boolean;
    filterType: StacklaWidgetFilterType;
    id: StacklaWidgetEmbedId;
    name: string;
    rendered: boolean;
    usedInTest: boolean;
}
export declare class StacklaWidgetEmbedId extends CampaignId<StacklaWidgetEmbedId> {
}
export interface TaggedProduct<SKU> extends NostoVariant {
    age_group: string;
    alternate_image_urls: string[];
    brand: string;
    categories: string[];
    category_ids: string[];
    condition: string;
    custom_fields: {
        [index: string]: string;
    };
    date_published: Date;
    description: string;
    gender: string;
    google_category: string;
    gtin: string;
    image_url: string;
    name: string;
    partial_variants: {
        [index: string]: NostoVariant;
    };
    product_id: string;
    rating_value: number;
    review_count: number;
    skus: SKU[];
    tags1: string[];
    tags2: string[];
    tags3: string[];
    thumb_url: string;
    unit_pricing_base_measure: number;
    unit_pricing_measure: number;
    unit_pricing_unit: string;
    url: string;
    variant_id: string;
}
export declare class TestDebugDTO extends Record {
    id: TestId;
    variation: string;
}
export declare class TestId extends CampaignId<TestId> {
}
export interface TestPlacementRule extends PlacementRule<any> {
    placement: string;
}
export declare class TestPlacementRuleDTO implements TestPlacementRule {
    feature: OnsiteFeature;
    placement: string;
    segment: string;
    to: CampaignId<any>;
}
export declare class TestPreviewsDTO {
    d?: ForcedTestDTO;
    t: ForcedTestDTO[];
    u?: UnsavedDraftPreviewSettingsDTO;
}
export declare class UnsavedDraftPreviewSettingsDTO extends AbTestPreviewSettingsBase<VariationWithRulesDTO> {
    variations: VariationWithRulesDTO[];
}
export interface Validated {
}
export declare class ValidationError extends PublicJacksonBean {
    key: string;
    message: string;
}
export declare class VariationWithRulesDTO extends AbTestVariationDTO {
    rules: TestPlacementRuleDTO[];
}
export declare class VisitDTO extends PublicJacksonBean {
    cart_items: CartItem[];
    customer_id: string;
    email: string;
    events: Events;
    id: string;
}
export declare class WebsiteOrder extends PublicJacksonBean implements OrderStatus {
    created_at: Date;
    date: Date;
    external_order_ref: string;
    info: OrderCustomer;
    items: ConversionItem[];
    order_status: string;
    order_status_label: string;
    payment_provider: string;
}
export declare const enum FilterOperator {
    INCLUDES = "INCLUDES",
    IS = "IS",
    CONTAINS = "CONTAINS",
    MATCHES_REGEXP_PATTERN = "MATCHES_REGEXP_PATTERN",
    LT = "LT",
    GT = "GT",
    GTE = "GTE",
    LTE = "LTE",
    BETWEEN = "BETWEEN",
    AND = "AND",
    OR = "OR"
}
export declare const enum InsertMode {
    REPLACE = "REPLACE",
    APPEND = "APPEND",
    PREPEND = "PREPEND",
    INSERT_INTO = "INSERT_INTO",
    INSERT_AFTER_BEGIN = "INSERT_AFTER_BEGIN"
}
export declare const enum Method {
    SPLIT_TEST = "SPLIT_TEST",
    MVT = "MVT"
}
export declare const enum OnsiteFeature {
    RECOMMENDATION = "RECOMMENDATION",
    CONTENT_DELIVERY = "CONTENT_DELIVERY",
    POPUP = "POPUP",
    SPLIT_TESTING = "SPLIT_TESTING",
    SCHEDULING = "SCHEDULING",
    STACKLA_WIDGET = "STACKLA_WIDGET"
}
export declare const enum PageType {
    FRONT = "front",
    CATEGORY = "category",
    PRODUCT = "product",
    CART = "cart",
    SEARCH = "search",
    NOTFOUND = "notfound",
    ORDER = "order",
    OTHER = "other",
    CHECKOUT = "checkout"
}
export declare const enum RenderMode {
    HTML = "HTML",
    SIMPLE = "SIMPLE",
    JSON_170x170 = "JSON_170x170",
    JSON_100_X_100 = "JSON_100_X_100",
    JSON_90x70 = "JSON_90x70",
    JSON_50x50 = "JSON_50x50",
    JSON_30x30 = "JSON_30x30",
    JSON_100x140 = "JSON_100x140",
    JSON_200x200 = "JSON_200x200",
    JSON_400x400 = "JSON_400x400",
    JSON_750x750 = "JSON_750x750",
    JSON_10_MAX_SQUARE = "JSON_10_MAX_SQUARE",
    JSON_200x200_SQUARE = "JSON_200x200_SQUARE",
    JSON_400x400_SQUARE = "JSON_400x400_SQUARE",
    JSON_750x750_SQUARE = "JSON_750x750_SQUARE",
    JSON_ORIGINAL = "JSON_ORIGINAL",
    VERSION_SOURCE = "VERSION_SOURCE"
}
export declare const enum StacklaWidgetFilterType {
    LATEST = "LATEST",
    CATEGORY_OR_BRAND = "CATEGORY_OR_BRAND",
    PRODUCT = "PRODUCT"
}
export declare const enum TargetType {
    RECOMMENDATION = "RECOMMENDATION",
    ONSITE_CONTENT = "ONSITE_CONTENT",
    AB_TEST = "AB_TEST",
    HIDE_CONTENT = "HIDE_CONTENT",
    STACKLA_WIDGET = "STACKLA_WIDGET"
}
export declare const enum WrapMode {
    SIMPLE = "SIMPLE",
    PRESERVE_CLASS = "PRESERVE_CLASS",
    CLONED = "CLONED",
    UNWRAPPED = "UNWRAPPED"
}
