import { AsyncDirective } from 'lit-html/async-directive';
import { noChange } from 'lit-html';
interface Unsubscribable {
unsubscribe(): void;
}
interface Subscribable {
/** @deprecated Use an observer instead of a complete callback */
subscribe(next: null | undefined, error: null | undefined, complete: () => void): Unsubscribable;
/** @deprecated Use an observer instead of an error callback */
subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Unsubscribable;
/** @deprecated Use an observer instead of a complete callback */
subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Unsubscribable;
subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Unsubscribable;
}
declare class ObserveDirective extends AsyncDirective {
observable: Subscribable | undefined;
subscription: Unsubscribable;
render(asyncResult: Subscribable): "" | typeof noChange;
subscribe(observable: Subscribable): void;
disconnected(): void;
unsubscribe(): void;
reconnected(): void;
}
export declare const async: (asyncResult: Subscribable) => import("lit-html/directive").DirectiveResult;
export {};