import type { ComponentScope, Dispatcher as RuntimeDispatcher, DispatcherEvent, MarkupPromiseEvent, MarkupRunEvent, MarkupValueEvent } from "../dispatcher.js";
export { Code } from "../dispatcher.js";
export type { DispatcherEvent, MarkupPromiseEvent, MarkupPromiseOptions, MarkupRunEvent, MarkupValueEvent, } from "../dispatcher.js";
export declare class Dispatcher {
static emit(event: MarkupValueEvent): A | F;
static emit(event: MarkupPromiseEvent): Promise;
static emit(event: MarkupRunEvent): Promise;
static emit(event: DispatcherEvent): A | F | Promise;
/**
* Runs `fn` with `scope` as the active component scope so emitted work is
* bound to the calling component's lifetime.
*/
static with_scope(scope: ComponentScope, fn: () => T): T;
}
export declare function get_dispatcher(): RuntimeDispatcher;