import { type TemplateResult } from 'lit';
export interface DomRenderer<TViewModel> {
    mount(container: HTMLElement): void;
    update(viewModel: TViewModel): void;
    destroy(): void;
}
export declare abstract class LitDomRenderer<TViewModel> implements DomRenderer<TViewModel> {
    private container;
    private viewModel;
    mount(container: HTMLElement): void;
    update(viewModel: TViewModel): void;
    destroy(): void;
    protected get mountedContainer(): HTMLElement | null;
    protected abstract renderTemplate(viewModel: TViewModel): TemplateResult;
    protected afterRender(_container: HTMLElement, _viewModel: TViewModel): void;
    private renderCurrent;
}
