
interface DateTimePickerOptions {
    format?: string;
    weekStart?: number;
    startDate?: any;
    endDate?: any;
    autoclose?: boolean;
    startView?: number;
    todayBtn?: any;
    todayHighlight?: boolean;
    keyboardNavigation?: boolean;
    language?: string;
    beforeShowDay?: (date: any) => any;
    calendarWeeks?: boolean;
    clearBtn?: boolean;
    daysOfWeekDisabled?: number[];
    forceParse?: boolean;
    inputs?: any[];
    minViewMode?: any;
    multidate?: any;
    multidateSeparator?: string;
    orientation?: string;
    pickTime?: boolean; 
    pick12HourFormat?: boolean;
    pickSeconds?: boolean; 
}

interface DateTimePickerEventObject extends JQueryEventObject {
    date: Date;
    format(format?: string): string;
}

interface JQuery {
    datetimepicker(): JQuery;
    datetimepicker(methodName: string): any;
    datetimepicker(methodName: string, params: any): any;
    datetimepicker(options: DateTimePickerOptions): JQuery;

    off(events: "changeDate", selector?: string, handler?: (eventObject: DateTimePickerEventObject) => any): JQuery;
    off(events: "changeDate", handler: (eventObject: DateTimePickerEventObject) => any): JQuery;

    on(events: "changeDate", selector: string, data: any, handler?: (eventObject: DateTimePickerEventObject) => any): JQuery;
    on(events: "changeDate", selector: string, handler: (eventObject: DateTimePickerEventObject) => any): JQuery;
    on(events: 'changeDate', handler: (eventObject: DateTimePickerEventObject) => any): JQuery;
}

declare module "bootstrap-datepicker" {
}