import { KeyBuilder } from '../../../common/key-builder/key-builder'; import { AwaitControlFlow } from '../../../symbols'; import { RenderFunction } from '../../dom-render/render'; import { AsyncComponentFunction, Renderable, VirtualElement, ComponentFunction } from '../../../types'; type LazyAsyncComponentFunction = () => Promise<{ default: AsyncComponentFunction; }>; type LazyComponentFunction = () => Promise<{ default: ComponentFunction; }>; interface AwaitProps { component: ComponentFunction | AsyncComponentFunction | LazyAsyncComponentFunction | LazyComponentFunction; fallback: Renderable; error?: Renderable; onError?: (error: Error) => void; onResolve?: () => void; } declare function Await(props: AwaitProps): VirtualElement; declare namespace Await { var $$type: typeof AwaitControlFlow; } declare function renderAwait(element: VirtualElement, container: HTMLElement, render: RenderFunction, key: KeyBuilder): HTMLElement | Text; export type { AwaitProps }; export { Await, renderAwait };