import { type aether } from '../../aether/aether';
export type RequestF = (reason: string) => void;
export declare const REASON_LAYOUT = "layout";
export declare const REASON_DATA = "data";
export declare const REASON_TOOL = "tool";
export declare class Controller {
    f: RequestF;
    static readonly CONTEXT_KEY = "pluto-vis-renderer";
    private constructor();
    static control(ctx: aether.Context, f: RequestF): void;
    static useRequest(ctx: aether.Context): RequestF;
    static useOptionalRequest(ctx: aether.Context): RequestF | null;
    static requestRender(ctx: aether.Context, reason: string): void;
}
