import { AsyncDirective, type ChildPart, type DirectiveParameters } from 'lit/async-directive.js';
export declare const REQUEST_REMOVE: unique symbol;
export type RendererRequest<T> = {
    data: T | typeof REQUEST_REMOVE;
    name: string;
    slotName: string;
    node: Element;
};
declare class RequestRenderer<T> extends AsyncDirective {
    private readonly _key;
    private _part;
    private _callback;
    private _state;
    private _name;
    private get _renderNode();
    private _shouldUpdateNG;
    private _shouldUpdate;
    render(_callback: any, _name: string, _data: T): symbol;
    update(part: ChildPart, [callback, name, data]: DirectiveParameters<this>): symbol;
    protected reconnected(): void;
    protected disconnected(): void;
}
export declare const requestRenderer: (_callback: any, _name: string, _data: unknown) => import("lit-html/directive.js").DirectiveResult<typeof RequestRenderer>;
export {};
