import { AsyncDirective as LitAsyncDirective, type PartInfo } from 'lit/async-directive.js';
import type { Observable, Subscribable } from 'rxjs';
export declare function isPromise<T = any>(obj: any): obj is Promise<T>;
export declare function isSubscribable<T>(obj: any | Subscribable<T>): obj is Subscribable<T>;
declare class AsyncDirective extends LitAsyncDirective {
    private _latestValue;
    private _subscription;
    private _obj;
    private _strategy;
    /**
     * Constructs a new instance of the `AsyncDirective` class.
     *
     * @public
     */
    constructor(partInfo: PartInfo);
    render<T>(observable: Observable<T> | Subscribable<T> | Promise<T> | null | undefined): unknown;
    disconnected(): void;
    reconnected(): void;
    private async;
    private selectStrategy;
    private dispose;
    private updateLatestValue;
}
export declare const async: (observable: Promise<unknown> | Observable<unknown> | Subscribable<unknown> | null | undefined) => import("lit-html/directive").DirectiveResult<typeof AsyncDirective>;
export {};
//# sourceMappingURL=AsyncDirective.d.ts.map