import { type Model } from '@derbyjs/racer'; import { type AppBase, type App } from './App'; import components = require('./components'); import { Controller } from './Controller'; import { type PageParams } from './routes'; import * as derbyTemplates from './templates'; import { Context } from './templates/contexts'; import { Expression } from './templates/expressions'; export declare abstract class PageBase extends Controller { params: Readonly; context: Context; create: (model: Model, dom: any) => void; init?: (model: Model) => void; _components: Record; _eventModel: any; _removeModelListeners: () => void; page: PageBase; constructor(app: AppBase, model: Model); $bodyClass(ns: string): string; get(viewName: string, ns: string, unescaped?: any): any; getFragment(viewName: string, ns: string): any; getView(viewName: string, ns: string): any; destroy(): void; render(_ns: string, _status?: number): void; _createContext(): derbyTemplates.contexts.Context; _setRenderPrefix(ns: string): void; _setRenderParams(ns: any): void; } export declare class Page extends PageBase { constructor(app: App, model: Model); $preventDefault(e: Event): void; $stopPropagation(e: Event): void; attach(): void; render(ns: string, _status?: number): void; private _addListeners; private _addModelListeners; private _addModelListenersLegacy; private _addContextListeners; } export declare class BindingWrapper { binding: any; dependencies: any; eventModel: any; eventModels: any; expression: Expression; id: number; ignoreTemplateDependency: boolean; constructor(eventModel: any, expression: any, binding: any); updateDependencies: () => void; update: (previous: any, pass: any) => void; insert: (index: any, howMany: any) => void; remove: (index: any, howMany: any) => void; move: (from: any, to: any, howMany: any) => void; }