/// <reference types="node" />
import { EventEmitter } from 'events';
import { DefualtType, type ChildModel } from 'racer';
import { type App } from './App';
import { Dom } from './Dom';
import { Page } from './Page';
export declare class Controller<T = DefualtType> extends EventEmitter {
    dom: Dom;
    app: App;
    page: Page;
    /**
     * Model scoped to this instance's "private" data.
     */
    model: ChildModel<T>;
    markerNode: Node;
    constructor(app: App, page: Page, model: ChildModel<T>);
    emitCancellable(...args: unknown[]): boolean;
    emitDelayable(...args: unknown[]): boolean;
}
