export type Defer = () => void | Promise<void>;
export interface ComptimeContext {
    sourceFile: string;
    deferQueue: Defer[];
    position: {
        start: number;
        end: number;
    };
}
export interface AsyncContext<T> {
    run<R>(store: T, callback: () => R): R;
    getStore(): T | undefined;
}
export declare let asyncLocalStore: AsyncContext<{
    __comptime_context: ComptimeContext;
}>;
