import { FC, HTMLAttributes } from 'react'; import { AlignmentOffset, AlignmentMode, BuildingSVGGroupClickHandler, InteractionMode, PVSystemResponse, RooftopGeometryResponse } from '../../../types'; /** * The PV System Visualizer component allows sales members and homeowners to visualize a rooftop PV system. * * This component takes in data from two Instant Design endpoints to display the current design: * `POST Find or Create a Rooftop Geometry` and `POST PV System`. * The `rooftopGeometryResponse` prop takes the `POST Find or Create a Rooftop Geometry` response, * which provides the rooftop geometry and satellite image. * The `pvSystemResponse` prop takes the `POST PV System` response, * which provides the PV system design's image. */ export declare const PVSystemVisualizer: FC; export interface PVSystemVisualizerProps extends HTMLAttributes { /** * The response from the `POST Find or Create a Rooftop Geometry` endpoint. */ rooftopGeometryResponse?: RooftopGeometryResponse; /** * The response from the `POST PV System` endpoint. */ pvSystemResponse?: PVSystemResponse; /** * Whether to allow clicking roof faces to perform the onRoofFaceClick callback function. */ allowRoofFaceInteraction?: boolean; /** * The function to call when allowRoofFaceInteraction is true and a roof face is clicked. */ onRoofFaceClick?: BuildingSVGGroupClickHandler; /** * Whether to allow clicking panels to perform the onPanelClick callback function. */ allowPanelInteraction?: boolean; /** * The function to call when allowPanelInteraction is true and a panel is clicked. */ onPanelClick?: BuildingSVGGroupClickHandler; /** * The interaction mode that the PV System Visualizer is currently in. */ interactionMode?: InteractionMode; /** * If true, show the building alignment screen. Overridden if `showPresentationView` is true. */ showAlignment?: boolean; /** * The method called when the building alignment visibility is changed. */ setShowAlignment?: (showAlignment: boolean) => void; /** * User interface options for the PV System Visualizer. */ alignmentOffset?: AlignmentOffset; /** * A callback function to be performed when one of the user interface options changes. */ onAlignmentOffsetChange?: (offset: AlignmentOffset) => void; /** * If true, show a non-editable version of the PV system. */ showPresentationView?: boolean; /** * If true, show a non-editable version of the PV system without the sidebar or dashboard. */ showImagesOnly?: boolean; /** * If true, show the PV System Visualizer in a loading state. */ showLoadingSpinner?: boolean; /** * The alignment mode we wwant to use. Only applies when in `showImagesOnly` mode. */ alignmentMode?: AlignmentMode; /** * If true, hide satellite imagery attribution. */ hideAttribution?: boolean; /** * A callback function invoked when the user completes adjusting the alignment offset. */ onAlignmentOffsetComplete?: () => void; /** * If true, the irradiance will be toggled */ showIrradianceView?: boolean; }