import PropTypes from 'prop-types';

export default {
    isPortraitMode: PropTypes.bool,
    activeDesignArea: PropTypes.bool,
    selectedDesignArea: PropTypes.string,
    fatalError: PropTypes.bool,
    children: PropTypes.object,
    showDesigner: PropTypes.bool,
    fallbackMode: PropTypes.bool,
    is3DvisualMode: PropTypes.bool,
    selectedConfigurationMode: PropTypes.string,
    customElements: PropTypes.shape({
        main: PropTypes.node,
        root: PropTypes.node,
    }),

    // Render props
    renderVisualization: PropTypes.func,
    renderError: PropTypes.func,
    renderAlertMessages: PropTypes.func,
    renderConfirm: PropTypes.func,
    renderAmountPrice: PropTypes.func,
    renderLandscapeInformation: PropTypes.func,
    renderSaveConfiguration: PropTypes.func,
    renderSendEmail: PropTypes.func,
    renderPdfDownload: PropTypes.func,
    renderLoadConfiguration: PropTypes.func,
    renderLoader: PropTypes.func,

    // Components
    CreatorScreen: PropTypes.elementType.isRequired,
    DesignerScreen: PropTypes.elementType.isRequired,
    VisualizationProvider: PropTypes.elementType.isRequired,
    FallbackVisualization: PropTypes.elementType.isRequired,
    ThemeProvider: PropTypes.elementType.isRequired,
};
