import { type TemplateResult } from 'lit';
import type { DirectiveResult } from 'lit/directive.js';
import { rxjs } from '@push.rocks/smartrx';
/**
 * Directive that renders templates for each emission of an Observable.
 * Usage: html`${subscribeWithTemplate(myObservable, v => html`<span>${v}</span>`)}`
 */
/**
 * Typed directive function signature: returns a Lit DirectiveResult.
 */
type SubscribeWithTemplateFn = <T>(observable: rxjs.Observable<T>, templateFn: (value: T) => TemplateResult | unknown) => DirectiveResult;
export declare const subscribeWithTemplate: SubscribeWithTemplateFn;
export {};
