export class WidgetBase {

    public element: JQuery;

    constructor() {
        // remove all members, they are only needed at compile time.
        var myPrototype = (<Function>WidgetBase).prototype;
        $.each(myPrototype, (propertyName, value) => {
            delete myPrototype[propertyName];
        });
    }

    /**
     * Calles the base implementation of a method when called from a derived method.
     * @private
     */
    public _super(arg1?: any, arg2?: any, arg3?: any, arg4?: any) {

    }

    /**
     * @private
     */
    public _superApply(args) {

    }

    /**
     * Gets or sets the value of the widget option associated with the specified optionName.
     */
    public option(optionName: string, value?: any): any {

    }

    // ... further methods from http://api.jqueryui.com/jQuery.widget/
}