import * as _WidgetBase from "dijit/_WidgetBase"; import * as Stateful from "dojo/Stateful"; export interface IRemovable { remove(): void; } type StatefulAttrs = T extends Stateful ? A : never; interface WatchFn { >( target: T, prop: K, render: (model: StatefulAttrs[K]) => any, own?: (obj: IRemovable) => void ); ( target: W, prop: K, render: (model: W[K]) => any, own?: (obj: IRemovable) => void ); } export declare const watch: WatchFn;