import { ActionBar } from "../../../../base/browser/ui/actionbar/actionbar.js";
import { IHoverDelegate } from "../../../../base/browser/ui/hover/hoverDelegate.js";
import { IconLabel } from "../../../../base/browser/ui/iconLabel/iconLabel.js";
import { TriStateCheckbox } from "../../../../base/browser/ui/toggle/toggle.js";
import { ITreeElementRenderDetails, ITreeNode, ITreeRenderer } from "../../../../base/browser/ui/tree/tree.js";
import { Emitter, Event } from "../../../../base/common/event.js";
import { Disposable, DisposableStore } from "../../../../base/common/lifecycle.js";
import { IThemeService } from "../../../theme/common/themeService.service.js";
import { IQuickTreeCheckboxEvent, IQuickTreeItem, IQuickTreeItemButtonEvent } from "../../common/quickInput.js";
import { IQuickTreeFilterData } from "./quickInputTree.js";
export interface IQuickTreeTemplateData {
    entry: HTMLElement;
    checkbox: TriStateCheckbox;
    icon: HTMLElement;
    label: IconLabel;
    detail: IconLabel;
    actionBar: ActionBar;
    toDisposeElement: DisposableStore;
    toDisposeTemplate: DisposableStore;
}
export declare class QuickInputTreeRenderer<T extends IQuickTreeItem> extends Disposable implements ITreeRenderer<T, IQuickTreeFilterData, IQuickTreeTemplateData> {
    private readonly _hoverDelegate;
    private readonly _buttonTriggeredEmitter;
    private readonly onCheckedEvent;
    private readonly _themeService;
    static readonly ID = "quickInputTreeElement";
    templateId: string;
    constructor(_hoverDelegate: IHoverDelegate | undefined, _buttonTriggeredEmitter: Emitter<IQuickTreeItemButtonEvent<T>>, onCheckedEvent: Event<IQuickTreeCheckboxEvent<T>>, _themeService: IThemeService);
    renderTemplate(container: HTMLElement): IQuickTreeTemplateData;
    renderElement(node: ITreeNode<T, IQuickTreeFilterData>, index: number, templateData: IQuickTreeTemplateData, details?: ITreeElementRenderDetails): void;
    disposeElement(_element: ITreeNode<T, IQuickTreeFilterData>, _index: number, templateData: IQuickTreeTemplateData, _details?: ITreeElementRenderDetails): void;
    disposeTemplate(templateData: IQuickTreeTemplateData): void;
}
