import { Component as ReactComponent } from "react";
export class Component extends ReactComponent {
    /**
     * @param props
     * @param context
     */
    constructor(props, context) {
        super(props, context);
        var keys = [];
        if (typeof Reflect !== 'undefined' && typeof Reflect.ownKeys === 'function') {
            keys = Reflect.ownKeys(this.constructor.prototype);
        }
        else {
            keys = Object.getOwnPropertyNames(this.constructor.prototype);
            if (typeof Object.getOwnPropertySymbols === 'function') {
                keys = keys.concat(Object.getOwnPropertySymbols(this.constructor.prototype));
            }
        }
        keys.forEach((key) => {
            // Ignore special case target method
            if (key === 'constructor') {
                return;
            }
            if (typeof this[key] === "function") {
                this[key] = this[key].bind(this);
            }
        });
    }
    /**
     * @returns {null}
     */
    componentWillMount() {
        return null;
    }
    /**
     * @returns {null}
     */
    componentDidMount() {
        return null;
    }
    /**
     * @param nextProps
     * @returns {null}
     */
    componentWillReceiveProps(nextProps) {
        return null;
    }
    /**
     * @returns {null}
     */
    shouldComponentUpdate(nextProps, nextState) {
        return true;
    }
    /**
     * @returns {null}
     */
    componentWillUpdate(nextProps, nextState) {
        return null;
    }
    /**
     * @returns {null}
     */
    componentDidUpdate(prevProps, prevState) {
        return null;
    }
    /**
     * @returns {null}
     */
    componentWillUnmount() {
        return null;
    }
}
