/*!
 * Built by ShiftSoftware
 * Copyright (c)
 */
import { Host, h } from "@stencil/core";
import { getMockFile } from "../../features/mocks/index";
import vehicleLookupWrapperSchema from "../../locales/vehicleLookup/wrapper-type";
import { VehicleInfoLayout } from "../../features/vehicle-info-layout/vehicle-info-layout";
import { getLocaleLanguage, getSharedLocal, sharedLocalesSchema } from "../../features/multi-lingual/index";
const componentTags = {
    vehicleAccessories: 'vehicle-accessories',
    vehicleSpecification: 'vehicle-specification',
    vehiclePaintThickness: 'vehicle-paint-thickness',
    vehicleServiceHistory: 'vehicle-service-history',
    vehicleClaimableItems: 'vehicle-claimable-items',
    vehicleSaleInformation: 'vehicle-sale-information',
    vehicleWarrantyDetails: 'vehicle-warranty-details',
    vehicleSsc: 'vehicle-ssc',
};
export class VehicleLookup {
    constructor() {
        // #region Localization
        this.language = 'en';
        this.locale = sharedLocalesSchema.getDefault();
        // #endregion
        // #region Wrapper Logic
        this.activeElement = '';
        this.baseUrl = '';
        this.isDev = false;
        this.mockUrl = '';
        this.mockRecaptcha = false;
        this.disableVinValidation = false;
        this.queryString = '';
        this.sscQueryString = '';
        this.separateSsc = false;
        this.hiddenTabs = '';
        this.blazorErrorStateListener = '';
        this.blazorOnLoadingStateChange = '';
        this.blazorDynamicClaimActivate = '';
        this.currentVin = '';
        this.isError = false;
        this.isLoading = false;
        this.searchGeneration = 0;
        this.syncErrorAcrossComponents = (newErrorMessage) => {
            var _a, _b;
            this.isError = true;
            this.errorMessage = ((_b = (_a = this.locale) === null || _a === void 0 ? void 0 : _a.errors) === null || _b === void 0 ? void 0 : _b[newErrorMessage]) || this.locale.errors.wildCard;
            Object.values(this.componentsList).forEach(element => {
                if (element)
                    element.setErrorMessage(newErrorMessage);
            });
        };
        this.loadingStateChangingMiddleware = (newState) => {
            this.isLoading = newState;
            if (this.loadingStateChanged)
                this.loadingStateChanged(newState);
            if (this.blazorRef && this.blazorOnLoadingStateChange)
                this.blazorRef.invokeMethodAsync(this.blazorOnLoadingStateChange, newState);
        };
    }
    async componentWillLoad() {
        await this.changeLanguage(this.language);
    }
    async changeLanguage(newLanguage) {
        const localeResponses = await Promise.all([getLocaleLanguage(newLanguage, 'vehicleLookup', vehicleLookupWrapperSchema), getSharedLocal(newLanguage)]);
        this.locale = localeResponses[1];
    }
    async componentDidLoad() {
        const vehicleAccessories = this.el.shadowRoot.getElementById('vehicle-accessories');
        const vehicleClaim = this.el.shadowRoot.getElementById('vehicle-claimable-items');
        const vehicleHistory = this.el.shadowRoot.getElementById('vehicle-service-history');
        const vehicleDetails = this.el.shadowRoot.getElementById('vehicle-warranty-details');
        const vehicleThickness = this.el.shadowRoot.getElementById('vehicle-paint-thickness');
        const vehicleSpecification = this.el.shadowRoot.getElementById('vehicle-specification');
        const vehicleSaleInformation = this.el.shadowRoot.getElementById('vehicle-sale-information');
        const vehicleSsc = this.separateSsc ? this.el.shadowRoot.getElementById('vehicle-ssc') : null;
        this.componentsList = {
            [componentTags.vehicleClaimableItems]: vehicleClaim,
            [componentTags.vehicleServiceHistory]: vehicleHistory,
            [componentTags.vehicleWarrantyDetails]: vehicleDetails,
            [componentTags.vehicleAccessories]: vehicleAccessories,
            [componentTags.vehiclePaintThickness]: vehicleThickness,
            [componentTags.vehicleSpecification]: vehicleSpecification,
            [componentTags.vehicleSaleInformation]: vehicleSaleInformation,
        };
        if (vehicleSsc) {
            this.componentsList[componentTags.vehicleSsc] = vehicleSsc;
        }
        Object.values(this.componentsList).forEach(element => {
            if (!element)
                return;
            element.errorCallback = this.syncErrorAcrossComponents;
            element.loadingStateChange = this.loadingStateChangingMiddleware;
            element.loadedResponse = newResponse => this.handleLoadData(newResponse, element);
        });
        if (vehicleClaim && this.dynamicClaimActivate) {
            vehicleClaim.activate = this.dynamicClaimActivate;
        }
        if (vehicleClaim) {
            vehicleClaim.activate = vehicleInformation => {
                if (this.blazorRef && this.blazorDynamicClaimActivate) {
                    this.blazorRef.invokeMethodAsync(this.blazorDynamicClaimActivate, vehicleInformation);
                }
            };
        }
        if (this.isDev)
            await this.loadMockData();
    }
    async onIsDevChange(isDev) {
        if (isDev)
            await this.loadMockData();
    }
    async loadMockData() {
        if (!this.componentsList)
            return;
        const mockData = await getMockFile('vehicle-lookup', this.mockUrl);
        Object.values(this.componentsList).forEach(element => {
            if (element)
                element.setMockData(mockData);
        });
    }
    getSscElement() {
        if (this.separateSsc)
            return this.componentsList[componentTags.vehicleSsc] || null;
        return this.componentsList[componentTags.vehicleWarrantyDetails] || null;
    }
    async handleLoadData(newResponse, activeElement) {
        const generation = this.searchGeneration;
        this.isError = false;
        this.errorMessage = '';
        this.currentVin = newResponse.vin || '';
        // Skip distributing to non-active components if a new search has started
        if (generation !== this.searchGeneration)
            return;
        const sscElement = this.sscQueryString ? this.getSscElement() : null;
        // Only clear SSC when we know the search came from a specific non-SSC tab.
        // When activeElement is null (programmatic data injection), distribute to all components.
        const shouldClearSsc = sscElement && activeElement !== null && activeElement !== sscElement;
        Object.values(this.componentsList).forEach(element => {
            if (element === null || element === activeElement || !newResponse)
                return;
            // When sscQueryString is set, clear SSC data on the SSC-showing component
            // if the search was triggered from a non-SSC tab (prevents viewing SSC without logging)
            if (shouldClearSsc && element === sscElement) {
                if (this.separateSsc) {
                    // SSC-only component: reset to empty state
                    element.clearData();
                }
                else {
                    // Combined warranty+SSC: distribute data with SSC stripped
                    element.fetchVin(Object.assign(Object.assign({}, newResponse), { ssc: [], sscLogId: null }));
                }
                return;
            }
            element.fetchVin(newResponse);
        });
    }
    async errorListener(newState) {
        if (this.errorStateListener)
            this.errorStateListener(newState);
        if (this.blazorRef && this.blazorErrorStateListener)
            this.blazorRef.invokeMethodAsync(this.blazorErrorStateListener, newState);
    }
    async setBlazorRef(newBlazorRef) {
        this.blazorRef = newBlazorRef;
    }
    async fetchVin(vin, headers = {}) {
        const activeElement = this.componentsList[this.activeElement] || null;
        this.componentsList[componentTags.vehicleClaimableItems].headers = headers;
        if (!activeElement)
            return;
        this.searchGeneration++;
        activeElement.fetchVin(vin, headers);
    }
    // #endregion
    render() {
        var _a;
        const props = {
            [componentTags.vehicleAccessories]: {},
            [componentTags.vehicleSpecification]: {},
            [componentTags.vehicleClaimableItems]: {},
            [componentTags.vehiclePaintThickness]: {},
            [componentTags.vehicleServiceHistory]: {},
            [componentTags.vehicleWarrantyDetails]: {},
            [componentTags.vehicleSaleInformation]: {},
            [componentTags.vehicleSsc]: {},
        };
        try {
            if (this.childrenProps) {
                let parsedProps = {};
                if (typeof this.childrenProps === 'string')
                    parsedProps = JSON.parse(this.childrenProps);
                else if (typeof this.childrenProps === 'object')
                    parsedProps = this.childrenProps;
                Object.keys(props).forEach(key => {
                    if (typeof parsedProps[key] === 'object')
                        props[key] = parsedProps[key];
                });
            }
        }
        catch (error) {
            console.error(error);
        }
        const hiddenSet = new Set(this.hiddenTabs.split(',').map(t => t.trim()).filter(Boolean));
        if (!Object.values(componentTags).includes(this.activeElement) || hiddenSet.has(this.activeElement))
            return h("div", { class: "w-full h-[200px] text-[26px] text-red-600 flex items-center justify-center" }, "Invalid tag");
        const allComponents = Object.assign(Object.assign({ 'vehicle-specification': (h("vehicle-specification", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleSpecification }, props[componentTags.vehicleSpecification]))), 'vehicle-accessories': (h("vehicle-accessories", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleAccessories }, props[componentTags.vehicleAccessories]))), 'vehicle-sale-information': (h("vehicle-sale-information", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleSaleInformation }, props[componentTags.vehicleSaleInformation]))), 'vehicle-warranty-details': (h("vehicle-warranty-details", Object.assign({ coreOnly: true, "show-ssc": !this.separateSsc, isDev: this.isDev, mockRecaptcha: this.mockRecaptcha, disableVinValidation: this.disableVinValidation, "show-warranty": "true", "base-url": this.baseUrl, language: this.language, "query-string": !this.separateSsc && this.sscQueryString ? [this.queryString, this.sscQueryString].filter(Boolean).join('&') : this.queryString, id: componentTags.vehicleWarrantyDetails }, props[componentTags.vehicleWarrantyDetails]))) }, (this.separateSsc
            ? {
                'vehicle-ssc': (h("vehicle-warranty-details", Object.assign({ coreOnly: true, "show-ssc": "true", isDev: this.isDev, mockRecaptcha: this.mockRecaptcha, disableVinValidation: this.disableVinValidation, "show-warranty": "false", "base-url": this.baseUrl, language: this.language, "query-string": [this.queryString, this.sscQueryString].filter(Boolean).join('&'), id: componentTags.vehicleSsc }, props[componentTags.vehicleSsc]))),
            }
            : {})), { 'vehicle-service-history': (h("vehicle-service-history", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleServiceHistory }, props[componentTags.vehicleServiceHistory]))), 'vehicle-paint-thickness': (h("vehicle-paint-thickness", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehiclePaintThickness }, props[componentTags.vehiclePaintThickness]))), 'vehicle-claimable-items': (h("vehicle-claimable-items", Object.assign({ coreOnly: true, isDev: this.isDev, disableVinValidation: this.disableVinValidation, "base-url": this.baseUrl, language: this.language, "query-string": this.queryString, id: componentTags.vehicleClaimableItems }, props[componentTags.vehicleClaimableItems]))) });
        const componentList = Object.fromEntries(Object.entries(allComponents).filter(([key]) => !hiddenSet.has(key)));
        const claimableProps = props[componentTags.vehicleClaimableItems];
        const showClaimableTrace = this.activeElement === componentTags.vehicleClaimableItems &&
            !!((_a = claimableProps === null || claimableProps === void 0 ? void 0 : claimableProps.showTrace) !== null && _a !== void 0 ? _a : claimableProps === null || claimableProps === void 0 ? void 0 : claimableProps['show-trace']) &&
            !!this.currentVin &&
            !this.isError &&
            !this.isLoading;
        return (h(Host, { translate: "no" }, h(VehicleInfoLayout, { isError: this.isError, header: this.currentVin, isLoading: this.isLoading, direction: this.locale.direction, errorMessage: this.errorMessage || this.locale.errors.wildCard, headerRight: showClaimableTrace ? (h("button", { type: "button", class: "trace-trigger-button", title: "View Lookup Trace", "aria-label": "View Lookup Trace", onClick: () => { var _a, _b; return (_b = (_a = this.componentsList) === null || _a === void 0 ? void 0 : _a[componentTags.vehicleClaimableItems]) === null || _b === void 0 ? void 0 : _b.openTrace(); } }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("circle", { cx: "6", cy: "19", r: "3" }), h("path", { d: "M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15" }), h("circle", { cx: "18", cy: "5", r: "3" })))) : null }, h("shift-tab-content", { components: componentList, activeComponent: this.activeElement }))));
    }
    static get is() { return "vehicle-lookup"; }
    static get encapsulation() { return "shadow"; }
    static get originalStyleUrls() {
        return {
            "$": ["vehicle-lookup.css"]
        };
    }
    static get styleUrls() {
        return {
            "$": ["vehicle-lookup.css"]
        };
    }
    static get properties() {
        return {
            "language": {
                "type": "string",
                "attribute": "language",
                "mutable": false,
                "complexType": {
                    "original": "LanguageKeys",
                    "resolved": "\"ar\" | \"en\" | \"ku\" | \"ru\"",
                    "references": {
                        "LanguageKeys": {
                            "location": "import",
                            "path": "~features/multi-lingual",
                            "id": "src/features/multi-lingual/index.ts::LanguageKeys"
                        }
                    }
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "'en'"
            },
            "activeElement": {
                "type": "string",
                "attribute": "active-element",
                "mutable": false,
                "complexType": {
                    "original": "ActiveElement",
                    "resolved": "\"\" | \"vehicle-accessories\" | \"vehicle-claimable-items\" | \"vehicle-paint-thickness\" | \"vehicle-sale-information\" | \"vehicle-service-history\" | \"vehicle-specification\" | \"vehicle-ssc\" | \"vehicle-warranty-details\"",
                    "references": {
                        "ActiveElement": {
                            "location": "local",
                            "path": "/home/vsts/work/1/s/ADP.WebComponents/adp-web-components/src/components/vehicle-lookup/vehicle-lookup.tsx",
                            "id": "src/components/vehicle-lookup/vehicle-lookup.tsx::ActiveElement"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            },
            "baseUrl": {
                "type": "string",
                "attribute": "base-url",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            },
            "isDev": {
                "type": "boolean",
                "attribute": "is-dev",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "false"
            },
            "mockUrl": {
                "type": "string",
                "attribute": "mock-url",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            },
            "mockRecaptcha": {
                "type": "boolean",
                "attribute": "mock-recaptcha",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "false"
            },
            "disableVinValidation": {
                "type": "boolean",
                "attribute": "disable-vin-validation",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "false"
            },
            "queryString": {
                "type": "string",
                "attribute": "query-string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            },
            "sscQueryString": {
                "type": "string",
                "attribute": "ssc-query-string",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            },
            "separateSsc": {
                "type": "boolean",
                "attribute": "separate-ssc",
                "mutable": false,
                "complexType": {
                    "original": "boolean",
                    "resolved": "boolean",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "false"
            },
            "hiddenTabs": {
                "type": "string",
                "attribute": "hidden-tabs",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            },
            "childrenProps": {
                "type": "string",
                "attribute": "children-props",
                "mutable": false,
                "complexType": {
                    "original": "string | Object",
                    "resolved": "Object | string",
                    "references": {
                        "Object": {
                            "location": "global",
                            "id": "global::Object"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false
            },
            "blazorErrorStateListener": {
                "type": "string",
                "attribute": "blazor-error-state-listener",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            },
            "errorStateListener": {
                "type": "unknown",
                "attribute": "error-state-listener",
                "mutable": false,
                "complexType": {
                    "original": "(newError: string) => void",
                    "resolved": "(newError: string) => void",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false
            },
            "blazorOnLoadingStateChange": {
                "type": "string",
                "attribute": "blazor-on-loading-state-change",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            },
            "loadingStateChanged": {
                "type": "unknown",
                "attribute": "loading-state-changed",
                "mutable": false,
                "complexType": {
                    "original": "(isLoading: boolean) => void",
                    "resolved": "(isLoading: boolean) => void",
                    "references": {}
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false
            },
            "dynamicClaimActivate": {
                "type": "unknown",
                "attribute": "dynamic-claim-activate",
                "mutable": false,
                "complexType": {
                    "original": "(vehicleInformation: VehicleLookupDTO) => void",
                    "resolved": "(vehicleInformation: VehicleLookupDTO) => void",
                    "references": {
                        "VehicleLookupDTO": {
                            "location": "import",
                            "path": "~types/generated/vehicle-lookup/vehicle-lookup-dto",
                            "id": "src/global/types/generated/vehicle-lookup/vehicle-lookup-dto.ts::VehicleLookupDTO"
                        }
                    }
                },
                "required": false,
                "optional": true,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false
            },
            "blazorDynamicClaimActivate": {
                "type": "string",
                "attribute": "blazor-dynamic-claim-activate",
                "mutable": false,
                "complexType": {
                    "original": "string",
                    "resolved": "string",
                    "references": {}
                },
                "required": false,
                "optional": false,
                "docs": {
                    "tags": [],
                    "text": ""
                },
                "getter": false,
                "setter": false,
                "reflect": false,
                "defaultValue": "''"
            }
        };
    }
    static get states() {
        return {
            "locale": {},
            "errorMessage": {},
            "currentVin": {},
            "isError": {},
            "isLoading": {},
            "blazorRef": {}
        };
    }
    static get methods() {
        return {
            "handleLoadData": {
                "complexType": {
                    "signature": "(newResponse: VehicleLookupDTO, activeElement: any) => Promise<void>",
                    "parameters": [{
                            "name": "newResponse",
                            "type": "{ vin: string; identifiers: VehicleIdentifiersDTO; saleInformation: VehicleSaleInformation; paintThicknessInspections: PaintThicknessInspectionDTO[]; paintThickness: LegacyPaintThicknessDTO; isAuthorized: boolean; warranty: VehicleWarrantyDTO; nextServiceDate?: string; serviceHistory: VehicleServiceHistoryDTO[]; sscLogId?: string; ssc: SscDTO[]; vehicleVariantInfo: VehicleVariantInfoDTO; vehicleSpecification: VehicleSpecificationDTO; serviceItems: VehicleServiceItemDTO[]; accessories: AccessoryDTO[]; basicModelCode: string; }",
                            "docs": ""
                        }, {
                            "name": "activeElement",
                            "type": "any",
                            "docs": ""
                        }],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        },
                        "VehicleLookupDTO": {
                            "location": "import",
                            "path": "~types/generated/vehicle-lookup/vehicle-lookup-dto",
                            "id": "src/global/types/generated/vehicle-lookup/vehicle-lookup-dto.ts::VehicleLookupDTO"
                        },
                        "VehicleWarrantyDetails": {
                            "location": "import",
                            "path": "./vehicle-warranty-details",
                            "id": "src/components/vehicle-lookup/vehicle-warranty-details.tsx::VehicleWarrantyDetails"
                        }
                    },
                    "return": "Promise<void>"
                },
                "docs": {
                    "text": "",
                    "tags": []
                }
            },
            "setBlazorRef": {
                "complexType": {
                    "signature": "(newBlazorRef: DotNetObjectReference) => Promise<void>",
                    "parameters": [{
                            "name": "newBlazorRef",
                            "type": "{ invokeMethodAsync: (methodName: string, ...args: any[]) => Promise<any>; }",
                            "docs": ""
                        }],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        },
                        "DotNetObjectReference": {
                            "location": "import",
                            "path": "~features/blazor-ref",
                            "id": "src/features/blazor-ref/index.ts::DotNetObjectReference"
                        }
                    },
                    "return": "Promise<void>"
                },
                "docs": {
                    "text": "",
                    "tags": []
                }
            },
            "fetchVin": {
                "complexType": {
                    "signature": "(vin: string, headers?: any) => Promise<void>",
                    "parameters": [{
                            "name": "vin",
                            "type": "string",
                            "docs": ""
                        }, {
                            "name": "headers",
                            "type": "any",
                            "docs": ""
                        }],
                    "references": {
                        "Promise": {
                            "location": "global",
                            "id": "global::Promise"
                        }
                    },
                    "return": "Promise<void>"
                },
                "docs": {
                    "text": "",
                    "tags": []
                }
            }
        };
    }
    static get elementRef() { return "el"; }
    static get watchers() {
        return [{
                "propName": "language",
                "methodName": "changeLanguage"
            }, {
                "propName": "isDev",
                "methodName": "onIsDevChange"
            }, {
                "propName": "errorMessage",
                "methodName": "errorListener"
            }];
    }
}
