import React from "react";
export interface CoreComponentModel {
    hidePlaceHolder: boolean;
    isInEditor: boolean;
}
export interface CoreComponentState {
}
/**
 * AbstractCoreComponent - provides abstraction and helper methods to show a placeholder if the component is empty and author mode is on.
 */
export declare abstract class AbstractCoreComponent<Model extends CoreComponentModel, State extends CoreComponentState> extends React.Component<Model, State> {
    static defaultProps: {
        hidePlaceHolder: boolean;
        isInEditor: boolean;
    };
    baseCssCls: string;
    emptyPlaceHolderText: string;
    /**
     * Base Constructor
     * @param props component properties
     * @param baseCssCls the base BEM css class to be used for the component
     * @param emptyPlaceHolderText empty placeholder label for when the component needs to be configured in author mode
     */
    protected constructor(props: Model, baseCssCls: string, emptyPlaceHolderText: string);
    /**
     * Method that needs to be overloaded, to determine whether the component should be treated as 'empty'
     */
    protected abstract isEmpty(): boolean;
    /**
     * Render method that get's called if the component is not considered empty
     */
    protected abstract renderComponent(): JSX.Element;
    private __hidePlaceHolder;
    private __renderPlaceHolder;
    render(): JSX.Element;
}
//# sourceMappingURL=AbstractCoreComponent.d.ts.map