marko
Version:
Optimized runtime for Marko templates.
24 lines (23 loc) • 1.2 kB
TypeScript
import { type EncodedAccessor, type Scope, type Template } from "../common/types";
import { type Renderer, type SetupFn } from "./renderer";
import type { Signal } from "./signals";
interface LoadModule {
_: [template: string, walks: string, setup: SetupFn];
}
interface LoadSignal {
_: Signal;
}
export interface LoadTrigger {
<T>(load: () => Promise<T>): () => Promise<T>;
}
export declare function _load_template(id: string, load: () => Promise<Renderer>): Template & Renderer;
export declare function _load_setup(nodeAccessor: EncodedAccessor, childScopeAccessor: EncodedAccessor, load: () => Promise<LoadModule>): (owner: Scope) => void;
export declare function _load_signal(load: () => Promise<LoadSignal>): Signal;
export declare function _load_visible_trigger(selector: string, options?: IntersectionObserverInit): LoadTrigger;
export declare function _load_idle_trigger(options?: {
timeout?: number;
}): LoadTrigger;
export declare function _load_event_trigger(event: string, selector: string): LoadTrigger;
export declare function _load_media_trigger(query: string): LoadTrigger;
export declare function _load_race_trigger(...triggers: LoadTrigger[]): LoadTrigger;
export {};