import * as _WidgetBase from "dijit/_WidgetBase"; import { watch } from "./traits"; interface ScheduleWidgetAttrs { data: string[]; } interface ScheduleWidgetEvents { "scheduled": Event & { detail: { startDate: Date, endDate: Date } }; } declare class ScheduleWidget extends _WidgetBase { data: string[]; } const w = new ScheduleWidget({title: "Year schedule", data: ["a", "b"] }); w.get("data"); w.watch((p, o, n) => [p,o,n]); w.watch("data", (p, o, n) => [p,o,n]); watch(w, "title", v => String(v) ); watch(w, "data", v => String(v) ); w.emit("scheduled", { detail: { startDate: new Date(), endDate: new Date()} }); w.emit("click", {} ); w.emit("click", {} ); w.emit("some-extra-event", {}); w.on("click", e => e); w.on("some-extra-event", e => e);