import { EventEmitter } from '../../stencil-public-runtime'; import { VehicleLookupDTO } from "../../global/types/generated/vehicle-lookup/vehicle-lookup-dto"; import { VehicleServiceItemDTO } from "../../global/types/generated/vehicle-lookup/vehicle-service-item-dto"; import { VehicleInfoLayoutInterface, VerdictState } from "../../features/vehicle-info-layout/index"; import { BlazorInvokable, DotNetObjectReference, BlazorInvokableFunction } from "../../features/blazor-ref/index"; import { RequestHeadersProvider, VehicleLookupComponent } from "../../features/vehicle-lookup-component/index"; import { ComponentLocale, ErrorKeys, LanguageKeys, MultiLingual } from "../../features/multi-lingual/index"; import { PopoverTarget } from './components/claimable-item-popover'; import { VehicleItemClaimForm } from './vehicle-item-claim-form'; import dynamicClaimSchema from "../../locales/vehicleLookup/claimableItems/type"; import { VehicleLookupMock } from "../../features/vehicle-lookup-component/types"; import { ItemClaimDTO } from '../../global/types/generated/vehicle-lookup/item-claim-dto'; export declare class VehicleClaimableItems implements MultiLingual, VehicleInfoLayoutInterface, VehicleLookupComponent, BlazorInvokable { language: LanguageKeys; locale: ComponentLocale; componentWillLoad(): Promise; changeLanguage(newLanguage: LanguageKeys): Promise; coreOnly: boolean; isDev: boolean; today?: string; disableVinValidation: boolean; baseUrl: string; headers: object; queryString: string; uploadMultipleDocumentsAtTheForm: boolean; /** Asked for the current headers before every request this component makes itself (trace, claim); lets a host refresh its token on demand. */ requestHeadersProvider?: RequestHeadersProvider; /** Name of a [JSInvokable] method on the Blazor reference that answers with the current headers. */ blazorRequestHeadersProvider: string; lastRequestHeaders?: object; errorCallback?: BlazorInvokableFunction<(errorMessage: ErrorKeys) => void>; loadingStateChange?: BlazorInvokableFunction<(isLoading: boolean) => void>; loadedResponse?: BlazorInvokableFunction<(response: VehicleLookupDTO) => void>; isError: boolean; errorMessage?: ErrorKeys; isLoading: boolean; vehicleLookup?: VehicleLookupDTO; el: HTMLElement; mockData: any; abortController: AbortController; networkTimeoutRef: ReturnType; setMockData(newMockData: VehicleLookupMock): Promise; fetchVin(newData: VehicleLookupDTO | string, headers?: any): Promise; setErrorMessage(message: ErrorKeys): Promise; onLoadingChange(newValue: boolean): void; blazorRef?: DotNetObjectReference; setBlazorRef(newBlazorRef: DotNetObjectReference): Promise; print?: (claimResponse: any) => void; maximumDocumentFileSizeInMb: number; claimEndPoint: string; activate?: (vehicleInformation: VehicleLookupDTO) => void; showTrace: boolean; activeTab: string; showPrintBox: boolean; tabAnimationLoading: boolean; lastSuccessfulClaimResponse: any; showClaimableItemPopover: boolean; selectedClaimItem?: VehicleServiceItemDTO; tabs: VehicleServiceItemDTO['group'][]; popoverTarget: PopoverTarget; popoverHeight: number; popoverBodyContentHeight: number; popoverSwapping: boolean; outgoingClaimItem?: VehicleServiceItemDTO; popoverLayerKey: number; popoverFadingOut: boolean; showTraceModal: boolean; traceModalFadingOut: boolean; isLoadingTrace: boolean; traceError?: string; traceHtml?: string; claimForm: VehicleItemClaimForm; private traceAbortController?; private traceDialogEl?; private releaseTraceFallbacks?; private traceFadeOutTimeoutRef; private popoverAnchorEl; private popoverEl?; private popoverCloseTimeoutRef; private popoverHideTimeoutRef; private popoverSwapEndTimeoutRef; private progressBar; private claimableItemsBox; private tabAnimationTimeoutRef; private getServiceItems; private parseGroupData; /** * The lane is drawn by measuring where the next claimable card sits, so it cannot be measured * until Stencil has written those cards. Stencil writes through requestAnimationFrame, and a * browser does not run requestAnimationFrame while its tab is in the background — it does keep * firing timers there, only throttled. Measuring on a timer therefore measures a DOM that has * not been rendered yet whenever an answer arrives while nobody is watching: there are no cards * to find, the measurement fails, and the lane keeps the zero width the reset gave it. So the * measurement is requested through this flag and taken in componentDidRender, which ties it to * the render it depends on rather than to the clock. */ private progressBarUpdatePending; private takePendingProgressBarUpdate; private onWindowResize; private onVisibilityChange; private updateProgressBar; componentDidLoad(): Promise; componentDidRender(): void; disconnectedCallback(): Promise; onVehicleChange(): Promise; private onActiveTabChange; private activateClaimItem; private printLastClaimResponse; updatePopoverLocation: () => void; private onViewportChange; private measurePopoverHeight; private currentPopoverInner; private measurePopoverContentHeight; private static readonly POPOVER_CLOSE_DELAY_MS; private static readonly POPOVER_FADE_OUT_MS; /** Cross-fade + resize duration. Handed to the popover as --popover-swap, so this one number * drives both the CSS transitions and the timer that drops the outgoing layer. */ private static readonly POPOVER_SWAP_MS; private static readonly TRACE_FADE_OUT_MS; setClaimableItemPopover: (showPopover: boolean, claimableItem?: VehicleServiceItemDTO, anchorEl?: HTMLElement) => void; private onPopoverMouseEnter; private onPopoverMouseLeave; openTrace(): Promise; private openTraceModal; private closeTraceModal; /** Escape would drop the panel out of the top layer in one frame; close it through the fade. */ private onTraceCancel; completeClaim(response: any): Promise; handleClaim: (documents: File[], payload: ItemClaimDTO) => Promise; handleDevClaim: (documents: File[]) => Promise; claim(item: VehicleServiceItemDTO): Promise; /** * Fires whenever the panel's verdict changes — including back to idle when the vehicle is * cleared — so a composite that draws one card for several panels can colour its accent from the * active one. */ verdictChange: EventEmitter; private lastVerdict?; private currentVerdict; private announceVerdict; render(): any; }