class OptionsVM {
    constructor() {
        this.option = [];
    }
}

class ConfigOptionVM {
    constructor() {
        this.id = 0;
        this.name = '';
        this.type = '';
        this.options = new OptionsVM();
    }
}

class ConfigOptionsVM {
    constructor() {
        this.configoption = [];
    }
}

class EgpPricingVM {
    constructor() {
        this.annually = "";
    }
}

class UsdPricingVM {
}

class PricingVM {
    constructor() {
        this.egp = new EgpPricingVM();
        this.usd = new UsdPricingVM();
    }
}

class OptionVM {
    constructor() {
        this.id = 0;
        this.name = '';
        this.rawName = '';
        this.recurring = new Object();
        this.required = '';
        this.pricing = new PricingVM();
    }
}

class ClientVM {
    constructor() {
        this.id = 0;
        this.status = '';
    }
}

class ClientOptionsVM {
    constructor() {
        this.extraStorage = new ConfigOptionVM();
        this.sslCertificate = new ConfigOptionVM();
        this.sqlLicense = new ConfigOptionVM();
        this.ipAddress = new ConfigOptionVM();
        this.firewall = new ConfigOptionVM();
        this.WAF = new ConfigOptionVM();
        this.managementModel = new ConfigOptionVM();
        this.RAM = new ConfigOptionVM();
        this.productID = 0;
        // clientChoose
        this.extraStorageStr = 'No';
        this.sslCertificateStr = 'No';
        this.sqlLicenseStr = 'No';
        this.ipAddressStr = '0';
        this.RAMStr = '0';
        this.ipAddressNameStr = ';';
        this.firewallStr = 'No';
        this.WAFStr = 'No';
        this.managementModelStr = 'No';
        this.MultiDomainEVExtraDomainStr = '';
        this.MultiDomainExtraDomainStr = '';
        // pricies
        this.extraStoragePrice = 0;
        this.sslCertificatePrice = 0;
        this.sqlLicensePrice = 0;
        this.ipAddressPrice = 0;
        this.RAMPrice = 0;
        this.firewallPrice = 0;
        this.WAFPrice = 0;
        this.managementModelPrice = 0;
        this.MultiDomainEVExtraDomainPrice = 0;
        this.MultiDomainExtraDomainPrice = 0;
        //ids
        this.extraStorageID = 0;
        this.sslCertificateID = 0;
        this.sqlLicenseID = 0;
        this.ipAddressID = 0;
        this.firewallID = 0;
        this.WAFID = 0;
        this.managementModelID = 0;
    }
}

class OrderDomainVM {
    constructor() {
        this.domain = '';
        this.domaintype = '';
        this.regperiod = 1;
        this.eppcode = '';
    }
}

class TLDPricingDetailsVM {
    constructor() {
        this.tldYears = [];
    }
}

class CustomizedDomainVM extends OrderDomainVM {
    constructor() {
        super(...arguments);
        this.egpPriceBeforeDiscount = 0;
        this.usdPriceBeforeDiscount = 0;
        this.egpPriceAfterDiscount = 0;
        this.usdPriceAfterDiscount = 0;
        this.tldEgpPricing = new TLDPricingDetailsVM;
        this.tldUsdPricing = new TLDPricingDetailsVM;
    }
}

class OrderProductVM {
    constructor() {
        this.pid = 0;
        this.billingcycle = '';
        this.hidden = false;
        this.addons = '';
        this.hostname = '';
        this.ns1prefix = '';
        this.ns2prefix = '';
        this.rootpw = '';
        this.RangeBarValue = 0;
        this.configoptions = new ConfigOptionsVM();
    }
}

class CustomizedProductVM extends OrderProductVM {
    constructor() {
        super(...arguments);
        this.egpPriceBeforeDiscount = 0;
        this.usdPriceBeforeDiscount = 0;
        this.egpPriceAfterDiscount = 0;
        this.usdPriceAfterDiscount = 0;
        this.gid = 0;
        this.quantity = 0;
        this.name = "";
        this.pricing = new PricingVM();
        this.appliedDiscount = false;
        this.egpProductAddons = [];
        this.usdProductAddons = [];
        this.productCategory = "";
    }
}

class CustomizedPlacedOrderVM {
    constructor() {
        this.Domain = new CustomizedDomainVM();
        this.Product = new CustomizedProductVM();
    }
}

class CustomizedOrderVM {
    constructor() {
        this.id = 0;
        this.placedProductDTO = new CustomizedPlacedOrderVM();
        this.clientOptions = new ClientOptionsVM();
    }
}

class CustomFieldVM {
    constructor() {
        this.id = 0;
        this.name = '';
        this.description = '';
        this.required = '';
    }
}

class CustomFieldsVM {
    constructor() {
        this.customfield = [];
    }
}

class ItemsVM {
    constructor() {
        this.item = [];
    }
}

class InvoiceItemUpdatesVM {
    constructor() {
        this.result = '';
        this.invoicenum = '';
        this.date = '';
        this.duedate = '';
        this.datepaid = '';
        this.lastcaptureattempt = '';
        this.subtotal = '';
        this.tax = '';
        this.credit = '';
        this.balance = '';
        this.transactions = '';
        this.notes = '';
        this.paymentmethod = '';
        this.status = '';
        this.taxrate = '';
        this.taxrate2 = '';
        this.total = '';
        this.tax2 = '';
        this.invoiceid = 0;
        this.userid = 0;
        this.ccgateway = false;
        this.items = new ItemsVM();
        this.promoCodeValue = '';
    }
}

class ItemVM {
    constructor() {
        this.id = 0;
        this.relid = 0;
        this.taxed = 0;
        this.type = '';
        this.description = '';
        this.amount = '';
    }
}

class PaymentMethodVM {
    constructor() {
        this.displayname = '';
    }
}

class PromoCodeVM {
    constructor() {
        this.code = '';
    }
}

class PlacedOrderVM {
    constructor() {
        this.Domain = [];
        this.Product = [];
    }
}

class OrderVM {
    constructor() {
        this.client = new ClientVM();
        this.paymentmethod = new PaymentMethodVM();
        this.promocode = new PromoCodeVM();
        this.placedProductDTO = new PlacedOrderVM();
        this.amount = 0;
        this.invoiceDTO = new InvoiceItemUpdatesVM();
        this.productsDTO = [];
        this.clientOptions = [];
    }
}

class ProductUpdatesVM {
    constructor(productId) {
        this.productId = productId;
        this.billingcycle = 'monthly';
        this.pid = 0;
        this.gid = 0;
        this.pricing = new PricingVM();
        this.customfields = new CustomFieldsVM();
        this.configoptions = new ConfigOptionsVM();
        this.quantity = 1;
        this.status = 'active';
        this.selectedBillingCycleDuration = 'monthly';
        this.selectedBillingCyclePrice = 10;
        this.selectedCurrency = 'USD';
        this.hidden = false;
        this.addons = '';
        this.hostname = '';
        this.ns1prefix = '';
        this.ns2prefix = '';
        this.rootpw = '';
        this.RangeBarValue = 0;
        this.microsoft365DomainName = '';
        this.MultiDomainExtraDomainPrice = 0;
        this.MultiDomainEVExtraDomainPrice = 0;
        this.selectedHostedExchange = false;
        this.percentage = 0;
        this.appliedDiscount = false;
    }
}

class PromotionsVM {
    constructor() {
        this.promotion = [];
    }
}

class NavBarContentVM {
    constructor() {
        this.title = "";
        this.url = "";
        this.links = [];
    }
}

class IconTextVM {
    constructor() {
        this.iconPath = "";
        this.iconAlt = "";
        this.heading = "";
        this.body = "";
        this.linkUrl = "";
    }
}

class TextWithPargraphContentsVM {
    constructor() {
        this.title = '';
        this.pargraph = '';
    }
}

class LocalStorageKeys {
    constructor() {
        this.VPSSelectedPlanId = 0;
        this.hostedExchangeSelectedPlanId = 0;
        this.businessEmailSelectedPlanId = 0;
        this.webHostingSelectedPlanId = 0;
    }
}

class NavBarUrlsVM {
    constructor() {
        this.cartUrl = "";
        this.contactUsUrl = "";
        this.clientAreaUrl = "";
        this.loginUrl = "";
    }
}

class BlogSharedMethodsVM {
    replaceDashWithSpace(title) {
        let splitTitle = title.toLowerCase().replace(/\s+/g, '-').replace(/\?$/, '');
        return splitTitle;
    }
}

;
;

/**
 * Generated bundle index. Do not edit.
 */

export { BlogSharedMethodsVM, ClientOptionsVM, ClientVM, ConfigOptionVM, ConfigOptionsVM, CustomFieldVM, CustomFieldsVM, CustomizedDomainVM, CustomizedOrderVM, CustomizedPlacedOrderVM, CustomizedProductVM, EgpPricingVM, IconTextVM, InvoiceItemUpdatesVM, ItemVM, ItemsVM, LocalStorageKeys, NavBarContentVM, NavBarUrlsVM, OptionVM, OptionsVM, OrderDomainVM, OrderProductVM, OrderVM, PaymentMethodVM, PlacedOrderVM, PricingVM, ProductUpdatesVM, PromoCodeVM, PromotionsVM, TLDPricingDetailsVM, TextWithPargraphContentsVM, UsdPricingVM };
//# sourceMappingURL=testlocallibrary-shared-kernel-models-view-models.mjs.map
