"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.aFrequencyCapsExecutionResult = exports.aStatus = exports.aReleaseAudience = exports.aSiteType = exports.aSiteTypeCriteria = exports.aConditionTypeEnum = exports.aExternalCriteria = exports.aEligibleForSaleCriteriaEnum = exports.aEligibleForSaleCriteria = exports.aPremiumAccountCriteriaEnum = exports.aPremiumAccountCriteria = exports.aPremiumLandingTabCriteriaEnum = exports.aPremiumLandingTabCriteria = exports.aCriteriaMetaData = exports.aCustomParamOperator = exports.aCustomParamCriteria = exports.aExperimentCriteria = exports.aBrand = exports.aBrandsCriteria = exports.aFreeSiteCriteriaEnum = exports.aFreeSiteCriteria = exports.aDomainLengthCriteria = exports.aMailboxCriteriaEnum = exports.aMailboxCriteria = exports.aPlan = exports.aPremiumPlanCriteria = exports.aEnum = exports.aConnectedDomainCriteria = exports.aUserStatusCriteriaEnum = exports.aUserStatusCriteria = exports.aUserRoleCriteriaEnum = exports.aUserRoleCriteria = exports.aListCriteria = exports.aComparatorTypeEnum = exports.aOperatorValueTypeEnum = exports.aCustomFilterOperator = exports.aCustomFilterDataSource = exports.aCustomFilterCriteria = exports.aOperator = exports.aCompoundCriteria = exports.aCriteriaType = exports.aExecutionResult = exports.aTargeting = exports.aDebugOfferResponse = exports.aCustomParam = exports.aBrandsCriteriaBrand = exports.aRequestContext = exports.aDebugOfferRequest = exports.aAsset = exports.aOffer = void 0;
exports.aFixedItem = exports.aAdvices = exports.aWhatsNextConfiguration = exports.aPrioritizationStrategy = exports.aPrioritizationStrategyParams = exports.aPrioritizationStrategyConfig = exports.aFrequencyCapsOverridesType = exports.aListOffersRequest = exports.aGetOfferResponse = exports.aGetOfferRequest = exports.aSiteTypeCriteriaSiteType = exports.aV1SiteTypeCriteria = exports.aConditionType = exports.aV1ExternalCriteria = exports.aEligibleForSaleCriteriaValue = exports.aV1EligibleForSaleCriteria = exports.aPremiumAccountCriteriaValue = exports.aV1PremiumAccountCriteria = exports.aPremiumLandingTabCriteriaValue = exports.aV1PremiumLandingTabCriteria = exports.aCustomParamCriteriaCustomParamOperator = exports.aV1CustomParamCriteria = exports.aV1BrandsCriteria = exports.aFreeSiteCriteriaValue = exports.aV1FreeSiteCriteria = exports.aMailboxCriteriaValue = exports.aV1MailboxCriteria = exports.aPremiumPlanCriteriaPlan = exports.aV1PremiumPlanCriteria = exports.aValue = exports.aV1ConnectedDomainCriteria = exports.aUserRoleCriteriaValue = exports.aV1UserRoleCriteria = exports.aV1ListCriteria = exports.aCustomOperator = exports.aCustomDataSource = exports.aComparator = exports.aFieldType = exports.aCustomCriteria = exports.aCompoundCriteriaOperator = exports.aV1CompoundCriteria = exports.aV1CriteriaType = exports.aV1ExecutionResult = exports.aTargetingTree = exports.aFrequencyCapsConditionsResult = exports.aConditions = exports.aLastEventLimit = exports.aEventsCountLimit = exports.aCountType = exports.aFrequencyCaps = void 0;
exports.aListOffersBulkResponse = exports.aListOffersBulkRequest = exports.aResolveOfferResponse = exports.aResolveOfferRequest = exports.aListOffersResponse = exports.aPrioritizationStrategyOverrides = exports.aFrequencyCapsRequestOverrides = exports.aRequestExtensions = exports.aShadowedStrategy = exports.aPrioritizationABTestStrategies = exports.aAdvicesConfig = exports.aWHATSNEXTConfig = exports.aABCTRConfig = void 0;
var metro_common_builders_1 = require("@wix/metro-common-builders");
var types_impl_1 = require("./types.impl");
// @ts-ignore
var callsite_1 = __importDefault(require("callsite"));
function aOffer(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offerGuid: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
        realEstateId: (0, metro_common_builders_1.someString)(),
        offerName: (0, metro_common_builders_1.someString)(),
        asset: aAsset(),
        campaignId: (0, metro_common_builders_1.someString)(),
        startDate: (0, metro_common_builders_1.someDate)(),
        endDate: (0, metro_common_builders_1.someDate)(),
        priorityMetadata: {},
    }, overrideObject);
}
exports.aOffer = aOffer;
function aAsset(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        payloadJson: (0, metro_common_builders_1.someString)(),
        dynamicParams: { dynamicParams: (0, metro_common_builders_1.someString)() },
        creative: {},
    }, overrideObject);
}
exports.aAsset = aAsset;
function aDebugOfferRequest(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offerId: (0, metro_common_builders_1.someString)(),
        context: aRequestContext(),
        customParams: [aCustomParam()],
    }, overrideObject);
}
exports.aDebugOfferRequest = aDebugOfferRequest;
function aRequestContext(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        userId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
        targetAccountId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
        loggedInAccountId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
        siteId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
        geo: (0, metro_common_builders_1.someString)(),
        language: (0, metro_common_builders_1.someString)(),
        brandValue: aBrandsCriteriaBrand(),
    }, overrideObject);
}
exports.aRequestContext = aRequestContext;
function aBrandsCriteriaBrand(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.BrandsCriteriaBrand.UNKNOWN_BRAND; }
    return enumFirstItem;
}
exports.aBrandsCriteriaBrand = aBrandsCriteriaBrand;
function aCustomParam(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        key: (0, metro_common_builders_1.someString)(),
        values: [(0, metro_common_builders_1.someString)()],
    }, overrideObject);
}
exports.aCustomParam = aCustomParam;
function aDebugOfferResponse(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offer: aOffer(),
        targeting: aTargeting(),
        releaseAudience: aReleaseAudience(),
        frequencyCapsExecutionResult: aFrequencyCapsExecutionResult(),
        targetingTree: aTargetingTree(),
    }, overrideObject);
}
exports.aDebugOfferResponse = aDebugOfferResponse;
function aTargeting(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        compound: aCompoundCriteria(),
        executionResult: aExecutionResult(),
        type: aCriteriaType(),
        label: (0, metro_common_builders_1.someString)(),
        negate: true,
    }, overrideObject);
}
exports.aTargeting = aTargeting;
function aExecutionResult(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        success: true,
        currentValue: (0, metro_common_builders_1.someString)(),
    }, overrideObject);
}
exports.aExecutionResult = aExecutionResult;
function aCriteriaType(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.CriteriaType.UNKNOWN; }
    return enumFirstItem;
}
exports.aCriteriaType = aCriteriaType;
function aCompoundCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        operator: aOperator(),
        children: [aTargeting()],
    }, overrideObject);
}
exports.aCompoundCriteria = aCompoundCriteria;
function aOperator(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.Operator.UNKNOWN; }
    return enumFirstItem;
}
exports.aOperator = aOperator;
function aCustomFilterCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        fieldId: (0, metro_common_builders_1.someString)(),
        dataSource: aCustomFilterDataSource(),
        operator: aCustomFilterOperator(),
        listRestriction: aCustomFilterOperator(),
    }, overrideObject);
}
exports.aCustomFilterCriteria = aCustomFilterCriteria;
function aCustomFilterDataSource(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.CustomFilterDataSource.UNKNOWN; }
    return enumFirstItem;
}
exports.aCustomFilterDataSource = aCustomFilterDataSource;
function aCustomFilterOperator(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        valueType: aOperatorValueTypeEnum(),
        expectedValue: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'MAX_LENGTH', value: '2000' }],
        }),
        comparator: aComparatorTypeEnum(),
    }, overrideObject);
}
exports.aCustomFilterOperator = aCustomFilterOperator;
function aOperatorValueTypeEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.OperatorValueTypeEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aOperatorValueTypeEnum = aOperatorValueTypeEnum;
function aComparatorTypeEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.ComparatorTypeEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aComparatorTypeEnum = aComparatorTypeEnum;
function aListCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        values: [(0, metro_common_builders_1.someString)()],
        included: true,
    }, overrideObject);
}
exports.aListCriteria = aListCriteria;
function aUserRoleCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aUserRoleCriteriaEnum(),
    }, overrideObject);
}
exports.aUserRoleCriteria = aUserRoleCriteria;
function aUserRoleCriteriaEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.UserRoleCriteriaEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aUserRoleCriteriaEnum = aUserRoleCriteriaEnum;
function aUserStatusCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aUserStatusCriteriaEnum(),
    }, overrideObject);
}
exports.aUserStatusCriteria = aUserStatusCriteria;
function aUserStatusCriteriaEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.UserStatusCriteriaEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aUserStatusCriteriaEnum = aUserStatusCriteriaEnum;
function aConnectedDomainCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aEnum(),
    }, overrideObject);
}
exports.aConnectedDomainCriteria = aConnectedDomainCriteria;
function aEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.Enum.UNKNOWN; }
    return enumFirstItem;
}
exports.aEnum = aEnum;
function aPremiumPlanCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        products: [(0, metro_common_builders_1.someNumber)()],
        plan: aPlan(),
    }, overrideObject);
}
exports.aPremiumPlanCriteria = aPremiumPlanCriteria;
function aPlan(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.Plan.UNKNOWN; }
    return enumFirstItem;
}
exports.aPlan = aPlan;
function aMailboxCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aMailboxCriteriaEnum(),
    }, overrideObject);
}
exports.aMailboxCriteria = aMailboxCriteria;
function aMailboxCriteriaEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.MailboxCriteriaEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aMailboxCriteriaEnum = aMailboxCriteriaEnum;
function aDomainLengthCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        length: (0, metro_common_builders_1.someNumber)(),
        shorterOrEqual: true,
    }, overrideObject);
}
exports.aDomainLengthCriteria = aDomainLengthCriteria;
function aFreeSiteCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aFreeSiteCriteriaEnum(),
    }, overrideObject);
}
exports.aFreeSiteCriteria = aFreeSiteCriteria;
function aFreeSiteCriteriaEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.FreeSiteCriteriaEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aFreeSiteCriteriaEnum = aFreeSiteCriteriaEnum;
function aBrandsCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        values: [aBrand()],
        included: true,
    }, overrideObject);
}
exports.aBrandsCriteria = aBrandsCriteria;
function aBrand(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.Brand.UNKNOWN; }
    return enumFirstItem;
}
exports.aBrand = aBrand;
function aExperimentCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        spec: (0, metro_common_builders_1.someString)(),
        value: (0, metro_common_builders_1.someString)(),
    }, overrideObject);
}
exports.aExperimentCriteria = aExperimentCriteria;
function aCustomParamCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        operator: aCustomParamOperator(),
        key: (0, metro_common_builders_1.someString)(),
        values: [(0, metro_common_builders_1.someString)()],
        criteriaMetaData: aCriteriaMetaData(),
    }, overrideObject);
}
exports.aCustomParamCriteria = aCustomParamCriteria;
function aCustomParamOperator(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.CustomParamOperator.UNKNOWN; }
    return enumFirstItem;
}
exports.aCustomParamOperator = aCustomParamOperator;
function aCriteriaMetaData(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        label: (0, metro_common_builders_1.someString)(),
    }, overrideObject);
}
exports.aCriteriaMetaData = aCriteriaMetaData;
function aPremiumLandingTabCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aPremiumLandingTabCriteriaEnum(),
    }, overrideObject);
}
exports.aPremiumLandingTabCriteria = aPremiumLandingTabCriteria;
function aPremiumLandingTabCriteriaEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.PremiumLandingTabCriteriaEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aPremiumLandingTabCriteriaEnum = aPremiumLandingTabCriteriaEnum;
function aPremiumAccountCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aPremiumAccountCriteriaEnum(),
    }, overrideObject);
}
exports.aPremiumAccountCriteria = aPremiumAccountCriteria;
function aPremiumAccountCriteriaEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.PremiumAccountCriteriaEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aPremiumAccountCriteriaEnum = aPremiumAccountCriteriaEnum;
function aEligibleForSaleCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aEligibleForSaleCriteriaEnum(),
        customSale: (0, metro_common_builders_1.someString)(),
        productTypeId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
    }, overrideObject);
}
exports.aEligibleForSaleCriteria = aEligibleForSaleCriteria;
function aEligibleForSaleCriteriaEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.EligibleForSaleCriteriaEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aEligibleForSaleCriteriaEnum = aEligibleForSaleCriteriaEnum;
function aExternalCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        artifactName: (0, metro_common_builders_1.someString)(),
        conditionType: aConditionTypeEnum(),
        expectedValue: {},
        additionalParams: {},
    }, overrideObject);
}
exports.aExternalCriteria = aExternalCriteria;
function aConditionTypeEnum(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.ConditionTypeEnum.UNKNOWN; }
    return enumFirstItem;
}
exports.aConditionTypeEnum = aConditionTypeEnum;
function aSiteTypeCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        values: [aSiteType()],
        included: true,
    }, overrideObject);
}
exports.aSiteTypeCriteria = aSiteTypeCriteria;
function aSiteType(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.SiteType.UNKNOWN; }
    return enumFirstItem;
}
exports.aSiteType = aSiteType;
function aReleaseAudience(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        releaseStatus: aStatus(),
        releaseExecutionResult: aExecutionResult(),
        timeStart: (0, metro_common_builders_1.someDate)(),
        timeStop: (0, metro_common_builders_1.someDate)(),
        timeExecutionResult: aExecutionResult(),
        experimentKey: (0, metro_common_builders_1.someString)(),
        experimentValue: (0, metro_common_builders_1.someString)(),
        experimentExecutionResult: aExecutionResult(),
    }, overrideObject);
}
exports.aReleaseAudience = aReleaseAudience;
function aStatus(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.Status.UNKNOWN; }
    return enumFirstItem;
}
exports.aStatus = aStatus;
function aFrequencyCapsExecutionResult(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offerEligible: true,
        frequencyCaps: aFrequencyCaps(),
        conditionsExecutionResult: aFrequencyCapsConditionsResult(),
    }, overrideObject);
}
exports.aFrequencyCapsExecutionResult = aFrequencyCapsExecutionResult;
function aFrequencyCaps(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        countWithRelatedOffers: true,
        conditions: aConditions(),
    }, overrideObject);
}
exports.aFrequencyCaps = aFrequencyCaps;
function aCountType(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.CountType.UNKNOWN; }
    return enumFirstItem;
}
exports.aCountType = aCountType;
function aEventsCountLimit(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        limit: (0, metro_common_builders_1.someNumber)(),
        type: aCountType(),
    }, overrideObject);
}
exports.aEventsCountLimit = aEventsCountLimit;
function aLastEventLimit(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        limit: (0, metro_common_builders_1.someNumber)(),
    }, overrideObject);
}
exports.aLastEventLimit = aLastEventLimit;
function aConditions(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        views: aEventsCountLimit(),
        mainCtaClicks: aEventsCountLimit(),
        skips: aEventsCountLimit(),
        closes: aEventsCountLimit(),
        showLater: aLastEventLimit(),
    }, overrideObject);
}
exports.aConditions = aConditions;
function aFrequencyCapsConditionsResult(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        views: aExecutionResult(),
        mainCtaClicks: aExecutionResult(),
        skips: aExecutionResult(),
        closes: aExecutionResult(),
        showLater: aExecutionResult(),
    }, overrideObject);
}
exports.aFrequencyCapsConditionsResult = aFrequencyCapsConditionsResult;
function aTargetingTree(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        compoundCriteria: aV1CompoundCriteria(),
        executionResult: aV1ExecutionResult(),
        type: aV1CriteriaType(),
        label: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'MAX_LENGTH', value: '100' }],
        }),
        negate: true,
    }, overrideObject);
}
exports.aTargetingTree = aTargetingTree;
function aV1ExecutionResult(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        success: true,
        currentValue: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'MAX_LENGTH', value: '100' }],
        }),
    }, overrideObject);
}
exports.aV1ExecutionResult = aV1ExecutionResult;
function aV1CriteriaType(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.V1CriteriaType.UNKNOWN_CRITERIA_TYPE; }
    return enumFirstItem;
}
exports.aV1CriteriaType = aV1CriteriaType;
function aV1CompoundCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        operator: aCompoundCriteriaOperator(),
        children: [
            aTargetingTree(),
            aTargetingTree(),
            aTargetingTree(),
            aTargetingTree(),
            aTargetingTree(),
            aTargetingTree(),
            aTargetingTree(),
            aTargetingTree(),
            aTargetingTree(),
            aTargetingTree(),
        ],
    }, overrideObject);
}
exports.aV1CompoundCriteria = aV1CompoundCriteria;
function aCompoundCriteriaOperator(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.CompoundCriteriaOperator.UNKNOWN_OPERATOR; }
    return enumFirstItem;
}
exports.aCompoundCriteriaOperator = aCompoundCriteriaOperator;
function aCustomCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        fieldId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'MAX_LENGTH', value: '100' }],
        }),
        dataSource: aCustomDataSource(),
        operator: aCustomOperator(),
        listRestriction: aCustomOperator(),
    }, overrideObject);
}
exports.aCustomCriteria = aCustomCriteria;
function aFieldType(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.FieldType.UNKNOWN_FIELD_TYPE; }
    return enumFirstItem;
}
exports.aFieldType = aFieldType;
function aComparator(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.Comparator.UNKNOWN_COMPARATOR; }
    return enumFirstItem;
}
exports.aComparator = aComparator;
function aCustomDataSource(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.CustomDataSource.UNKNOWN_CUSTOM_DATA_SOURCE; }
    return enumFirstItem;
}
exports.aCustomDataSource = aCustomDataSource;
function aCustomOperator(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        fieldType: aFieldType(),
        expectedValue: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'MAX_LENGTH', value: '2000' }],
        }),
        comparator: aComparator(),
    }, overrideObject);
}
exports.aCustomOperator = aCustomOperator;
function aV1ListCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        values: [
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '1000' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
        ],
        included: true,
    }, overrideObject);
}
exports.aV1ListCriteria = aV1ListCriteria;
function aV1UserRoleCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aUserRoleCriteriaValue(),
    }, overrideObject);
}
exports.aV1UserRoleCriteria = aV1UserRoleCriteria;
function aUserRoleCriteriaValue(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.UserRoleCriteriaValue.UNKNOWN_VALUE; }
    return enumFirstItem;
}
exports.aUserRoleCriteriaValue = aUserRoleCriteriaValue;
function aV1ConnectedDomainCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aValue(),
    }, overrideObject);
}
exports.aV1ConnectedDomainCriteria = aV1ConnectedDomainCriteria;
function aValue(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.Value.UNKNOWN_VALUE; }
    return enumFirstItem;
}
exports.aValue = aValue;
function aV1PremiumPlanCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        products: [
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
            (0, metro_common_builders_1.someNumber)({
                validations: [
                    { type: 'MAX_SIZE', value: '10000' },
                ],
            }),
        ],
        plan: aPremiumPlanCriteriaPlan(),
    }, overrideObject);
}
exports.aV1PremiumPlanCriteria = aV1PremiumPlanCriteria;
function aPremiumPlanCriteriaPlan(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.PremiumPlanCriteriaPlan.UNKNOWN_PLAN; }
    return enumFirstItem;
}
exports.aPremiumPlanCriteriaPlan = aPremiumPlanCriteriaPlan;
function aV1MailboxCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aMailboxCriteriaValue(),
    }, overrideObject);
}
exports.aV1MailboxCriteria = aV1MailboxCriteria;
function aMailboxCriteriaValue(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.MailboxCriteriaValue.UNKNOWN_VALUE; }
    return enumFirstItem;
}
exports.aMailboxCriteriaValue = aMailboxCriteriaValue;
function aV1FreeSiteCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aFreeSiteCriteriaValue(),
    }, overrideObject);
}
exports.aV1FreeSiteCriteria = aV1FreeSiteCriteria;
function aFreeSiteCriteriaValue(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.FreeSiteCriteriaValue.UNKNOWN_VALUE; }
    return enumFirstItem;
}
exports.aFreeSiteCriteriaValue = aFreeSiteCriteriaValue;
function aV1BrandsCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        values: [
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
            aBrandsCriteriaBrand(),
        ],
        included: true,
    }, overrideObject);
}
exports.aV1BrandsCriteria = aV1BrandsCriteria;
function aV1CustomParamCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        operator: aCustomParamCriteriaCustomParamOperator(),
        key: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'MAX_LENGTH', value: '100' }],
        }),
        values: [
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [
                    { type: 'MAX_SIZE', value: '100' },
                    { type: 'MAX_LENGTH', value: '100' },
                ],
            }),
        ],
    }, overrideObject);
}
exports.aV1CustomParamCriteria = aV1CustomParamCriteria;
function aCustomParamCriteriaCustomParamOperator(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.CustomParamCriteriaCustomParamOperator.UNKNOWN_CUSTOM_PARAM_OPERATOR; }
    return enumFirstItem;
}
exports.aCustomParamCriteriaCustomParamOperator = aCustomParamCriteriaCustomParamOperator;
function aV1PremiumLandingTabCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aPremiumLandingTabCriteriaValue(),
    }, overrideObject);
}
exports.aV1PremiumLandingTabCriteria = aV1PremiumLandingTabCriteria;
function aPremiumLandingTabCriteriaValue(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.PremiumLandingTabCriteriaValue.UNKNOWN_VALUE; }
    return enumFirstItem;
}
exports.aPremiumLandingTabCriteriaValue = aPremiumLandingTabCriteriaValue;
function aV1PremiumAccountCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aPremiumAccountCriteriaValue(),
    }, overrideObject);
}
exports.aV1PremiumAccountCriteria = aV1PremiumAccountCriteria;
function aPremiumAccountCriteriaValue(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.PremiumAccountCriteriaValue.UNKNOWN_VALUE; }
    return enumFirstItem;
}
exports.aPremiumAccountCriteriaValue = aPremiumAccountCriteriaValue;
function aV1EligibleForSaleCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        value: aEligibleForSaleCriteriaValue(),
        customSale: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'MAX_LENGTH', value: '100' }],
        }),
        productTypeId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
    }, overrideObject);
}
exports.aV1EligibleForSaleCriteria = aV1EligibleForSaleCriteria;
function aEligibleForSaleCriteriaValue(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.EligibleForSaleCriteriaValue.UNKNOWN_VALUE; }
    return enumFirstItem;
}
exports.aEligibleForSaleCriteriaValue = aEligibleForSaleCriteriaValue;
function aV1ExternalCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        artifactName: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'MAX_LENGTH', value: '100' }],
        }),
        conditionType: aConditionType(),
        expectedValue: {},
        additionalParams: {},
    }, overrideObject);
}
exports.aV1ExternalCriteria = aV1ExternalCriteria;
function aConditionType(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.ConditionType.UNKNOWN_CONDITION_TYPE; }
    return enumFirstItem;
}
exports.aConditionType = aConditionType;
function aV1SiteTypeCriteria(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        values: [aSiteTypeCriteriaSiteType()],
        included: true,
    }, overrideObject);
}
exports.aV1SiteTypeCriteria = aV1SiteTypeCriteria;
function aSiteTypeCriteriaSiteType(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.SiteTypeCriteriaSiteType.UNKNOWN_SITE_TYPE; }
    return enumFirstItem;
}
exports.aSiteTypeCriteriaSiteType = aSiteTypeCriteriaSiteType;
function aGetOfferRequest(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offerId: (0, metro_common_builders_1.someString)(),
        context: aRequestContext(),
    }, overrideObject);
}
exports.aGetOfferRequest = aGetOfferRequest;
function aGetOfferResponse(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offer: aOffer(),
    }, overrideObject);
}
exports.aGetOfferResponse = aGetOfferResponse;
function aListOffersRequest(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        realEstateId: (0, metro_common_builders_1.someString)(),
        limit: (0, metro_common_builders_1.someNumber)(),
        excludeOfferIds: [
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'FORMAT', value: 'GUID' }],
            }),
        ],
        extensions: aRequestExtensions(),
        deviantArtUserId: (0, metro_common_builders_1.someString)(),
        customParams: [aCustomParam()],
        frequencyCapsOverrides: aFrequencyCapsRequestOverrides(),
        skipTargeting: true,
        prioritizationStrategyOverrides: aPrioritizationStrategyOverrides(),
    }, overrideObject);
}
exports.aListOffersRequest = aListOffersRequest;
function aFrequencyCapsOverridesType(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.FrequencyCapsOverridesType.UNKNOWN; }
    return enumFirstItem;
}
exports.aFrequencyCapsOverridesType = aFrequencyCapsOverridesType;
function aPrioritizationStrategyConfig(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        defaultParams: aPrioritizationStrategyParams(),
    }, overrideObject);
}
exports.aPrioritizationStrategyConfig = aPrioritizationStrategyConfig;
function aPrioritizationStrategyParams(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        abCtrConfig: aABCTRConfig(),
        strategy: aPrioritizationStrategy(),
        learningAllocation: (0, metro_common_builders_1.someString)({
            validations: [
                {
                    type: 'DECIMAL_VALUE',
                    value: { gte: '0.000', lte: '1', maxScale: 3 },
                },
            ],
        }),
        fixedItems: [
            aFixedItem(),
            aFixedItem(),
            aFixedItem(),
            aFixedItem(),
            aFixedItem(),
            aFixedItem(),
            aFixedItem(),
            aFixedItem(),
            aFixedItem(),
            aFixedItem(),
        ],
    }, overrideObject);
}
exports.aPrioritizationStrategyParams = aPrioritizationStrategyParams;
function aPrioritizationStrategy(enumFirstItem) {
    if (enumFirstItem === void 0) { enumFirstItem = types_impl_1.PrioritizationStrategy.UNKNOWN; }
    return enumFirstItem;
}
exports.aPrioritizationStrategy = aPrioritizationStrategy;
function aWhatsNextConfiguration(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        customParams: {},
        totalAdvices: (0, metro_common_builders_1.someNumber)(),
        llmTimeoutInMs: (0, metro_common_builders_1.someNumber)({
            validations: [
                { type: 'MIN' },
                { type: 'MAX', value: '10000' },
            ],
        }),
    }, overrideObject);
}
exports.aWhatsNextConfiguration = aWhatsNextConfiguration;
function aAdvices(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        advices: [
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MAX_SIZE', value: '20' }],
            }),
        ],
    }, overrideObject);
}
exports.aAdvices = aAdvices;
function aFixedItem(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        itemId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
        priority: (0, metro_common_builders_1.someNumber)(),
    }, overrideObject);
}
exports.aFixedItem = aFixedItem;
function aABCTRConfig(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        specName: (0, metro_common_builders_1.someString)(),
    }, overrideObject);
}
exports.aABCTRConfig = aABCTRConfig;
function aWHATSNEXTConfig(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        customParams: {},
    }, overrideObject);
}
exports.aWHATSNEXTConfig = aWHATSNEXTConfig;
function aAdvicesConfig(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        whatsNextCustomParams: aWhatsNextConfiguration(),
        vespaThreshold: (0, metro_common_builders_1.someString)({
            validations: [
                {
                    type: 'DECIMAL_VALUE',
                    value: { gte: '0.000', lte: '1', maxScale: 3 },
                },
            ],
        }),
        fallbackStrategy: aPrioritizationStrategy(),
    }, overrideObject);
}
exports.aAdvicesConfig = aAdvicesConfig;
function aPrioritizationABTestStrategies(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        specName: (0, metro_common_builders_1.someString)({
            validations: [
                { type: 'MIN_LENGTH', value: '1' },
                { type: 'MAX_LENGTH', value: '100' },
            ],
        }),
        paramsA: aPrioritizationStrategyParams(),
        paramsB: aPrioritizationStrategyParams(),
    }, overrideObject);
}
exports.aPrioritizationABTestStrategies = aPrioritizationABTestStrategies;
function aShadowedStrategy(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        mainStrategy: aPrioritizationStrategyParams(),
        shadowedStrategy: aPrioritizationStrategyParams(),
    }, overrideObject);
}
exports.aShadowedStrategy = aShadowedStrategy;
function aRequestExtensions(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    return (0, metro_common_builders_1.mergeDeep)({
        siteId: (0, metro_common_builders_1.someString)({
            validations: [{ type: 'FORMAT', value: 'GUID' }],
        }),
    }, overrideObject);
}
exports.aRequestExtensions = aRequestExtensions;
function aFrequencyCapsRequestOverrides(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        conditions: aConditions(),
        type: aFrequencyCapsOverridesType(),
    }, overrideObject);
}
exports.aFrequencyCapsRequestOverrides = aFrequencyCapsRequestOverrides;
function aPrioritizationStrategyOverrides(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        prioritizationStrategyConfig: aPrioritizationStrategyConfig(),
    }, overrideObject);
}
exports.aPrioritizationStrategyOverrides = aPrioritizationStrategyOverrides;
function aListOffersResponse(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offers: [aOffer()],
    }, overrideObject);
}
exports.aListOffersResponse = aListOffersResponse;
function aResolveOfferRequest(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offerId: (0, metro_common_builders_1.someString)(),
        customParams: [aCustomParam()],
    }, overrideObject);
}
exports.aResolveOfferRequest = aResolveOfferRequest;
function aResolveOfferResponse(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        offer: aOffer(),
    }, overrideObject);
}
exports.aResolveOfferResponse = aResolveOfferResponse;
function aListOffersBulkRequest(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        realEstateIds: [
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'MIN_SIZE', value: '1' }],
            }),
        ],
        excludeOfferIds: [
            (0, metro_common_builders_1.someString)({
                validations: [{ type: 'FORMAT', value: 'GUID' }],
            }),
        ],
        extensions: aRequestExtensions(),
        customParams: [aCustomParam()],
        skipTargeting: true,
    }, overrideObject);
}
exports.aListOffersBulkRequest = aListOffersBulkRequest;
function aListOffersBulkResponse(overrideObject) {
    if (overrideObject === void 0) { overrideObject = {}; }
    if (isCurrentBuilderWasPreviouslyCalled()) {
        return {};
    }
    return (0, metro_common_builders_1.mergeDeep)({
        realEstates: { realEstates: aListOffersResponse() },
    }, overrideObject);
}
exports.aListOffersBulkResponse = aListOffersBulkResponse;
function isCurrentBuilderWasPreviouslyCalled() {
    var callChainFunctionNames = (0, callsite_1.default)().map(function (item) {
        return item.getFunctionName();
    });
    var callChainWithoutCurrentBuilder = callChainFunctionNames.splice(2);
    var currentBuilderName = callChainFunctionNames[1];
    return callChainWithoutCurrentBuilder.some(function (functionName) { return functionName === currentBuilderName; });
}
__exportStar(require("@wix/metro-common-builders"), exports);
//# sourceMappingURL=builders.impl.js.map