import { IRenderer, ISpecification, IRenderable, IStackeable } from '../api';
/**
 * Abstract renderer class.
 */
export declare abstract class AbstractRenderer implements IRenderer {
    protected readonly content: HTMLElement;
    protected readonly suggest: HTMLElement;
    protected channelId?: string;
    protected constructor(content: HTMLElement, suggest: HTMLElement);
    /**
     * @inheritDoc
     */
    render(message: ISpecification | IRenderable, containerType?: IStackeable): HTMLElement[];
    /**
     * Renders an incoming {@link IRenderable}
     */
    protected abstract renderElement(element: IRenderable, containerType?: IStackeable): HTMLElement[];
    /**
     * Returns the html decoded message
     *
     * @param text to be decoded message
     */
    private decodeEntities;
    /**
     * Returns the element by evaluating the message type.
     *
     * @param message the message
     */
    private getRenderable;
    /**
     * @inheritDoc
     */
    appendContent: (element: HTMLElement) => void;
    /**
     * @inheritDoc
     */
    appendSuggest: (element: HTMLElement) => void;
    init(channelId?: string): void;
}
