// Type definitions for Sugar v2.0.6 // Project: https://sugarjs.com/ // Definitions by: Andrew Plummer declare namespace sugarjs { type SugarDefaultChainable = Array.Chainable & Date.Chainable & Function.Chainable & Number.Chainable & Object.Chainable & RegExp.Chainable & String.Chainable; type NativeConstructor = ArrayConstructor | DateConstructor | FunctionConstructor | NumberConstructor | ObjectConstructor | RegExpConstructor | StringConstructor | BooleanConstructor | ErrorConstructor; interface Locale { addFormat(src:string, to?: Array): void; getDuration(ms: number): string; getFirstDayOfWeek(): number; getFirstDayOfWeekYear(): number; getMonthName(n: number): string; getWeekdayName(n: number): string; } interface ExtendOptions { methods?: Array; except?: Array; namespaces?: Array; enhance?: boolean; enhanceString?: boolean; enhanceArray?: boolean; objectPrototype?: boolean; } interface Sugar { (opts?: ExtendOptions): Sugar; createNamespace(name: string): SugarNamespace; extend(opts?: ExtendOptions): Sugar; Array: Array.Constructor; Date: Date.Constructor; Function: Function.Constructor; Number: Number.Constructor; Object: Object.Constructor; RegExp: RegExp.Constructor; String: String.Constructor; } interface SugarNamespace { alias(toName: string, from: string|Function): this; alias(toName: string, fn: undefined): this; defineInstance(methods: Object): this; defineInstance(methodName: string, methodFn: Function): this; defineInstanceAndStatic(methods: Object): this; defineInstanceAndStatic(methodName: string, methodFn: Function): this; defineInstancePolyfill(methods: Object): this; defineInstancePolyfill(methodName: string, methodFn: Function): this; defineInstanceWithArguments(methods: Object): this; defineInstanceWithArguments(methodName: string, methodFn: Function): this; defineStatic(methods: Object): this; defineStatic(methodName: string, methodFn: Function): this; defineStaticPolyfill(methods: Object): this; defineStaticPolyfill(methodName: string, methodFn: Function): this; defineStaticWithArguments(methods: Object): this; defineStaticWithArguments(methodName: string, methodFn: Function): this; extend(opts?: ExtendOptions): this; } namespace Array { type Chainable = ChainableBase & Object.ChainableBase; interface ChainableBase { raw: RawValue; valueOf: () => RawValue; toString: () => string; concat(...items: (T | T[])[]): SugarDefaultChainable; concat(...items: T[][]): SugarDefaultChainable; copyWithin(target: number, start: number, end?: number): SugarDefaultChainable; every(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): SugarDefaultChainable; fill(value: T, start?: number, end?: number): SugarDefaultChainable; filter(callbackfn: (value: T, index: number, array: T[]) => any, thisArg?: any): SugarDefaultChainable; find(predicate: (value: T, index: number, obj: Array) => boolean, thisArg?: any): SugarDefaultChainable; findIndex(predicate: (value: T, index: number, obj: Array) => boolean, thisArg?: any): SugarDefaultChainable; forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): SugarDefaultChainable; indexOf(searchElement: T, fromIndex?: number): SugarDefaultChainable; join(separator?: string): SugarDefaultChainable; lastIndexOf(searchElement: T, fromIndex?: number): SugarDefaultChainable; map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): SugarDefaultChainable; pop(): SugarDefaultChainable; push(...items: T[]): SugarDefaultChainable; reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): SugarDefaultChainable; reduce(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): SugarDefaultChainable; reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue?: T): SugarDefaultChainable; reduceRight(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): SugarDefaultChainable; reverse(): SugarDefaultChainable; shift(): SugarDefaultChainable; slice(start?: number, end?: number): SugarDefaultChainable; some(callbackfn: (value: T, index: number, array: T[]) => boolean, thisArg?: any): SugarDefaultChainable; sort(compareFn?: (a: T, b: T) => number): SugarDefaultChainable; splice(start: number): SugarDefaultChainable; splice(start: number, deleteCount: number, ...items: T[]): SugarDefaultChainable; toLocaleString(): SugarDefaultChainable; unshift(...items: T[]): SugarDefaultChainable; } } namespace Date { type Chainable = ChainableBase & Object.ChainableBase; interface DateOptions { newDateInternal: Function; } interface DateCreateOptions { locale?: string; past?: boolean; future?: boolean; fromUTC?: boolean; setUTC?: boolean; clone?: boolean; params?: Object; } interface Constructor extends SugarNamespace { (d?: string|number|Date, options?: DateCreateOptions): Chainable; new(d?: string|number|Date, options?: DateCreateOptions): Chainable; addLocale(localeCode: string, def: Object): Locale; create(d?: string|number|Date, options?: DateCreateOptions): Date; getAllLocaleCodes(): string[]; getAllLocales(): Array; getLocale(localeCode?: string): Locale; removeLocale(localeCode: string): Locale; setLocale(localeCode: string): Locale; addDays(instance: Date, n: number, reset?: boolean): Date; addHours(instance: Date, n: number, reset?: boolean): Date; addMilliseconds(instance: Date, n: number, reset?: boolean): Date; addMinutes(instance: Date, n: number, reset?: boolean): Date; addMonths(instance: Date, n: number, reset?: boolean): Date; addSeconds(instance: Date, n: number, reset?: boolean): Date; addWeeks(instance: Date, n: number, reset?: boolean): Date; addYears(instance: Date, n: number, reset?: boolean): Date; advance(instance: Date, set: string|Object, reset?: boolean): Date; advance(instance: Date, milliseconds: number): Date; advance(instance: Date, year: number, month: number, day?: number, hour?: number, minute?: number, second?: number, millliseconds?: undefined): Date; beginningOfDay(instance: Date, localeCode?: string): Date; beginningOfISOWeek(instance: Date): Date; beginningOfMonth(instance: Date, localeCode?: string): Date; beginningOfWeek(instance: Date, localeCode?: string): Date; beginningOfYear(instance: Date, localeCode?: string): Date; clone(instance: Date): Date; daysAgo(instance: Date): number; daysFromNow(instance: Date): number; daysInMonth(instance: Date): number; daysSince(instance: Date, d: string|number|Date, options?: DateCreateOptions): number; daysUntil(instance: Date, d?: string|number|Date, options?: DateCreateOptions): number; endOfDay(instance: Date, localeCode?: string): Date; endOfISOWeek(instance: Date): Date; endOfMonth(instance: Date, localeCode?: string): Date; endOfWeek(instance: Date, localeCode?: string): Date; endOfYear(instance: Date, localeCode?: string): Date; format(instance: Date, f?: string, localeCode?: string): string; full(instance: Date, localeCode?: string): string; get(instance: Date, d: string|number|Date, options?: DateCreateOptions): Date; getISOWeek(instance: Date): number; getUTCOffset(instance: Date, iso?: boolean): string; getUTCWeekday(instance: Date): number; getWeekday(instance: Date): number; hoursAgo(instance: Date): number; hoursFromNow(instance: Date): number; hoursSince(instance: Date, d: string|number|Date, options?: DateCreateOptions): number; hoursUntil(instance: Date, d?: string|number|Date, options?: DateCreateOptions): number; is(instance: Date, d: string|number|Date, margin?: number): boolean; isAfter(instance: Date, d: string|number|Date, margin?: number): boolean; isBefore(instance: Date, d: string|number|Date, margin?: number): boolean; isBetween(instance: Date, d1: string|number|Date, d2: string|number|Date, margin?: number): boolean; isFriday(instance: Date): boolean; isFuture(instance: Date): boolean; isLastMonth(instance: Date, localeCode?: string): boolean; isLastWeek(instance: Date, localeCode?: string): boolean; isLastYear(instance: Date, localeCode?: string): boolean; isLeapYear(instance: Date): boolean; isMonday(instance: Date): boolean; isNextMonth(instance: Date, localeCode?: string): boolean; isNextWeek(instance: Date, localeCode?: string): boolean; isNextYear(instance: Date, localeCode?: string): boolean; isPast(instance: Date): boolean; isSaturday(instance: Date): boolean; isSunday(instance: Date): boolean; isThisMonth(instance: Date, localeCode?: string): boolean; isThisWeek(instance: Date, localeCode?: string): boolean; isThisYear(instance: Date, localeCode?: string): boolean; isThursday(instance: Date): boolean; isToday(instance: Date): boolean; isTomorrow(instance: Date): boolean; isTuesday(instance: Date): boolean; isUTC(instance: Date): boolean; isValid(instance: Date): boolean; isWednesday(instance: Date): boolean; isWeekday(instance: Date): boolean; isWeekend(instance: Date): boolean; isYesterday(instance: Date): boolean; iso(instance: Date): string; long(instance: Date, localeCode?: string): string; medium(instance: Date, localeCode?: string): string; millisecondsAgo(instance: Date): number; millisecondsFromNow(instance: Date): number; millisecondsSince(instance: Date, d: string|number|Date, options?: DateCreateOptions): number; millisecondsUntil(instance: Date, d?: string|number|Date, options?: DateCreateOptions): number; minutesAgo(instance: Date): number; minutesFromNow(instance: Date): number; minutesSince(instance: Date, d: string|number|Date, options?: DateCreateOptions): number; minutesUntil(instance: Date, d?: string|number|Date, options?: DateCreateOptions): number; monthsAgo(instance: Date): number; monthsFromNow(instance: Date): number; monthsSince(instance: Date, d: string|number|Date, options?: DateCreateOptions): number; monthsUntil(instance: Date, d?: string|number|Date, options?: DateCreateOptions): number; relative(instance: Date, localeCode?: string, relativeFn?: (num: number, unit: number, ms: number, loc: Locale) => string): string; relative(instance: Date, relativeFn?: (num: number, unit: number, ms: number, loc: Locale) => string): string; relativeTo(instance: Date, d: string|number|Date, localeCode?: string): string; reset(instance: Date, unit?: string, localeCode?: string): Date; rewind(instance: Date, set: string|Object, reset?: boolean): Date; rewind(instance: Date, milliseconds: number): Date; rewind(instance: Date, year: number, month: number, day?: number, hour?: number, minute?: number, second?: number, millliseconds?: undefined): Date; secondsAgo(instance: Date): number; secondsFromNow(instance: Date): number; secondsSince(instance: Date, d: string|number|Date, options?: DateCreateOptions): number; secondsUntil(instance: Date, d?: string|number|Date, options?: DateCreateOptions): number; set(instance: Date, set: Object, reset?: boolean): Date; set(instance: Date, milliseconds: number): Date; set(instance: Date, year: number, month: number, day?: number, hour?: number, minute?: number, second?: number, millliseconds?: undefined): Date; setISOWeek(instance: Date, num: number): void; setUTC(instance: Date, on?: boolean): Date; setWeekday(instance: Date, dow: number): void; short(instance: Date, localeCode?: string): string; weeksAgo(instance: Date): number; weeksFromNow(instance: Date): number; weeksSince(instance: Date, d: string|number|Date, options?: DateCreateOptions): number; weeksUntil(instance: Date, d?: string|number|Date, options?: DateCreateOptions): number; yearsAgo(instance: Date): number; yearsFromNow(instance: Date): number; yearsSince(instance: Date, d: string|number|Date, options?: DateCreateOptions): number; yearsUntil(instance: Date, d?: string|number|Date, options?: DateCreateOptions): number; getOption(name: string): T; setOption(name: string, value: any): void; setOption(options: DateOptions): void; } interface ChainableBase { raw: RawValue; valueOf: () => RawValue; toString: () => string; addDays(n: number, reset?: boolean): SugarDefaultChainable; addHours(n: number, reset?: boolean): SugarDefaultChainable; addMilliseconds(n: number, reset?: boolean): SugarDefaultChainable; addMinutes(n: number, reset?: boolean): SugarDefaultChainable; addMonths(n: number, reset?: boolean): SugarDefaultChainable; addSeconds(n: number, reset?: boolean): SugarDefaultChainable; addWeeks(n: number, reset?: boolean): SugarDefaultChainable; addYears(n: number, reset?: boolean): SugarDefaultChainable; advance(set: string|Object, reset?: boolean): SugarDefaultChainable; advance(milliseconds: number): SugarDefaultChainable; advance(year: number, month: number, day?: number, hour?: number, minute?: number, second?: number, millliseconds?: undefined): SugarDefaultChainable; beginningOfDay(localeCode?: string): SugarDefaultChainable; beginningOfISOWeek(): SugarDefaultChainable; beginningOfMonth(localeCode?: string): SugarDefaultChainable; beginningOfWeek(localeCode?: string): SugarDefaultChainable; beginningOfYear(localeCode?: string): SugarDefaultChainable; clone(): SugarDefaultChainable; daysAgo(): SugarDefaultChainable; daysFromNow(): SugarDefaultChainable; daysInMonth(): SugarDefaultChainable; daysSince(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; daysUntil(d?: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; endOfDay(localeCode?: string): SugarDefaultChainable; endOfISOWeek(): SugarDefaultChainable; endOfMonth(localeCode?: string): SugarDefaultChainable; endOfWeek(localeCode?: string): SugarDefaultChainable; endOfYear(localeCode?: string): SugarDefaultChainable; format(f?: string, localeCode?: string): SugarDefaultChainable; full(localeCode?: string): SugarDefaultChainable; get(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; getISOWeek(): SugarDefaultChainable; getUTCOffset(iso?: boolean): SugarDefaultChainable; getUTCWeekday(): SugarDefaultChainable; getWeekday(): SugarDefaultChainable; hoursAgo(): SugarDefaultChainable; hoursFromNow(): SugarDefaultChainable; hoursSince(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; hoursUntil(d?: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; is(d: string|number|Date, margin?: number): SugarDefaultChainable; isAfter(d: string|number|Date, margin?: number): SugarDefaultChainable; isBefore(d: string|number|Date, margin?: number): SugarDefaultChainable; isBetween(d1: string|number|Date, d2: string|number|Date, margin?: number): SugarDefaultChainable; isFriday(): SugarDefaultChainable; isFuture(): SugarDefaultChainable; isLastMonth(localeCode?: string): SugarDefaultChainable; isLastWeek(localeCode?: string): SugarDefaultChainable; isLastYear(localeCode?: string): SugarDefaultChainable; isLeapYear(): SugarDefaultChainable; isMonday(): SugarDefaultChainable; isNextMonth(localeCode?: string): SugarDefaultChainable; isNextWeek(localeCode?: string): SugarDefaultChainable; isNextYear(localeCode?: string): SugarDefaultChainable; isPast(): SugarDefaultChainable; isSaturday(): SugarDefaultChainable; isSunday(): SugarDefaultChainable; isThisMonth(localeCode?: string): SugarDefaultChainable; isThisWeek(localeCode?: string): SugarDefaultChainable; isThisYear(localeCode?: string): SugarDefaultChainable; isThursday(): SugarDefaultChainable; isToday(): SugarDefaultChainable; isTomorrow(): SugarDefaultChainable; isTuesday(): SugarDefaultChainable; isUTC(): SugarDefaultChainable; isValid(): SugarDefaultChainable; isWednesday(): SugarDefaultChainable; isWeekday(): SugarDefaultChainable; isWeekend(): SugarDefaultChainable; isYesterday(): SugarDefaultChainable; iso(): SugarDefaultChainable; long(localeCode?: string): SugarDefaultChainable; medium(localeCode?: string): SugarDefaultChainable; millisecondsAgo(): SugarDefaultChainable; millisecondsFromNow(): SugarDefaultChainable; millisecondsSince(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; millisecondsUntil(d?: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; minutesAgo(): SugarDefaultChainable; minutesFromNow(): SugarDefaultChainable; minutesSince(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; minutesUntil(d?: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; monthsAgo(): SugarDefaultChainable; monthsFromNow(): SugarDefaultChainable; monthsSince(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; monthsUntil(d?: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; relative(localeCode?: string, relativeFn?: (num: number, unit: number, ms: number, loc: Locale) => SugarDefaultChainable): SugarDefaultChainable; relative(relativeFn?: (num: number, unit: number, ms: number, loc: Locale) => SugarDefaultChainable): SugarDefaultChainable; relativeTo(d: string|number|Date, localeCode?: string): SugarDefaultChainable; reset(unit?: string, localeCode?: string): SugarDefaultChainable; rewind(set: string|Object, reset?: boolean): SugarDefaultChainable; rewind(milliseconds: number): SugarDefaultChainable; rewind(year: number, month: number, day?: number, hour?: number, minute?: number, second?: number, millliseconds?: undefined): SugarDefaultChainable; secondsAgo(): SugarDefaultChainable; secondsFromNow(): SugarDefaultChainable; secondsSince(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; secondsUntil(d?: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; set(set: Object, reset?: boolean): SugarDefaultChainable; set(milliseconds: number): SugarDefaultChainable; set(year: number, month: number, day?: number, hour?: number, minute?: number, second?: number, millliseconds?: undefined): SugarDefaultChainable; setISOWeek(num: number): SugarDefaultChainable; setUTC(on?: boolean): SugarDefaultChainable; setWeekday(dow: number): SugarDefaultChainable; short(localeCode?: string): SugarDefaultChainable; weeksAgo(): SugarDefaultChainable; weeksFromNow(): SugarDefaultChainable; weeksSince(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; weeksUntil(d?: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; yearsAgo(): SugarDefaultChainable; yearsFromNow(): SugarDefaultChainable; yearsSince(d: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; yearsUntil(d?: string|number|Date, options?: DateCreateOptions): SugarDefaultChainable; getDate(): SugarDefaultChainable; getDay(): SugarDefaultChainable; getFullYear(): SugarDefaultChainable; getHours(): SugarDefaultChainable; getMilliseconds(): SugarDefaultChainable; getMinutes(): SugarDefaultChainable; getMonth(): SugarDefaultChainable; getSeconds(): SugarDefaultChainable; getTime(): SugarDefaultChainable; getTimezoneOffset(): SugarDefaultChainable; getUTCDate(): SugarDefaultChainable; getUTCDay(): SugarDefaultChainable; getUTCFullYear(): SugarDefaultChainable; getUTCHours(): SugarDefaultChainable; getUTCMilliseconds(): SugarDefaultChainable; getUTCMinutes(): SugarDefaultChainable; getUTCMonth(): SugarDefaultChainable; getUTCSeconds(): SugarDefaultChainable; setDate(date: number): SugarDefaultChainable; setFullYear(year: number, month?: number, date?: number): SugarDefaultChainable; setHours(hours: number, min?: number, sec?: number, ms?: number): SugarDefaultChainable; setMilliseconds(ms: number): SugarDefaultChainable; setMinutes(min: number, sec?: number, ms?: number): SugarDefaultChainable; setMonth(month: number, date?: number): SugarDefaultChainable; setSeconds(sec: number, ms?: number): SugarDefaultChainable; setTime(time: number): SugarDefaultChainable; setUTCDate(date: number): SugarDefaultChainable; setUTCFullYear(year: number, month?: number, date?: number): SugarDefaultChainable; setUTCHours(hours: number, min?: number, sec?: number, ms?: number): SugarDefaultChainable; setUTCMilliseconds(ms: number): SugarDefaultChainable; setUTCMinutes(min: number, sec?: number, ms?: number): SugarDefaultChainable; setUTCMonth(month: number, date?: number): SugarDefaultChainable; setUTCSeconds(sec: number, ms?: number): SugarDefaultChainable; toDateString(): SugarDefaultChainable; toISOString(): SugarDefaultChainable; toJSON(key?: any): SugarDefaultChainable; toLocaleDateString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): SugarDefaultChainable; toLocaleDateString(): SugarDefaultChainable; toLocaleString(): SugarDefaultChainable; toLocaleString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): SugarDefaultChainable; toLocaleTimeString(): SugarDefaultChainable; toLocaleTimeString(locales?: string | string[], options?: Intl.DateTimeFormatOptions): SugarDefaultChainable; toTimeString(): SugarDefaultChainable; toUTCString(): SugarDefaultChainable; } } namespace Function { type Chainable = ChainableBase & Object.ChainableBase; interface ChainableBase { raw: RawValue; valueOf: () => RawValue; toString: () => string; apply(thisArg: any, argArray?: any): SugarDefaultChainable; bind(thisArg: any, ...argArray: any[]): SugarDefaultChainable; call(thisArg: any, ...argArray: any[]): SugarDefaultChainable; } } namespace Number { type Chainable = ChainableBase & Object.ChainableBase; interface Constructor extends SugarNamespace { day(instance: number): number; dayAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; dayAgo(instance: number): Date; dayBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; dayFromNow(instance: number): Date; days(instance: number): number; daysAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; daysAgo(instance: number): Date; daysBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; daysFromNow(instance: number): Date; duration(instance: number, localeCode?: string): string; hour(instance: number): number; hourAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; hourAgo(instance: number): Date; hourBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; hourFromNow(instance: number): Date; hours(instance: number): number; hoursAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; hoursAgo(instance: number): Date; hoursBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; hoursFromNow(instance: number): Date; millisecond(instance: number): number; millisecondAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; millisecondAgo(instance: number): Date; millisecondBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; millisecondFromNow(instance: number): Date; milliseconds(instance: number): number; millisecondsAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; millisecondsAgo(instance: number): Date; millisecondsBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; millisecondsFromNow(instance: number): Date; minute(instance: number): number; minuteAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; minuteAgo(instance: number): Date; minuteBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; minuteFromNow(instance: number): Date; minutes(instance: number): number; minutesAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; minutesAgo(instance: number): Date; minutesBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; minutesFromNow(instance: number): Date; month(instance: number): number; monthAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; monthAgo(instance: number): Date; monthBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; monthFromNow(instance: number): Date; months(instance: number): number; monthsAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; monthsAgo(instance: number): Date; monthsBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; monthsFromNow(instance: number): Date; second(instance: number): number; secondAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; secondAgo(instance: number): Date; secondBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; secondFromNow(instance: number): Date; seconds(instance: number): number; secondsAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; secondsAgo(instance: number): Date; secondsBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; secondsFromNow(instance: number): Date; week(instance: number): number; weekAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; weekAgo(instance: number): Date; weekBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; weekFromNow(instance: number): Date; weeks(instance: number): number; weeksAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; weeksAgo(instance: number): Date; weeksBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; weeksFromNow(instance: number): Date; year(instance: number): number; yearAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; yearAgo(instance: number): Date; yearBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; yearFromNow(instance: number): Date; years(instance: number): number; yearsAfter(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; yearsAgo(instance: number): Date; yearsBefore(instance: number, d: string|number|Date, options?: Date.DateCreateOptions): Date; yearsFromNow(instance: number): Date; } interface ChainableBase { raw: RawValue; valueOf: () => RawValue; toString: () => string; day(): SugarDefaultChainable; dayAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; dayAgo(): SugarDefaultChainable; dayBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; dayFromNow(): SugarDefaultChainable; days(): SugarDefaultChainable; daysAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; daysAgo(): SugarDefaultChainable; daysBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; daysFromNow(): SugarDefaultChainable; duration(localeCode?: string): SugarDefaultChainable; hour(): SugarDefaultChainable; hourAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; hourAgo(): SugarDefaultChainable; hourBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; hourFromNow(): SugarDefaultChainable; hours(): SugarDefaultChainable; hoursAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; hoursAgo(): SugarDefaultChainable; hoursBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; hoursFromNow(): SugarDefaultChainable; millisecond(): SugarDefaultChainable; millisecondAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; millisecondAgo(): SugarDefaultChainable; millisecondBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; millisecondFromNow(): SugarDefaultChainable; milliseconds(): SugarDefaultChainable; millisecondsAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; millisecondsAgo(): SugarDefaultChainable; millisecondsBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; millisecondsFromNow(): SugarDefaultChainable; minute(): SugarDefaultChainable; minuteAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; minuteAgo(): SugarDefaultChainable; minuteBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; minuteFromNow(): SugarDefaultChainable; minutes(): SugarDefaultChainable; minutesAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; minutesAgo(): SugarDefaultChainable; minutesBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; minutesFromNow(): SugarDefaultChainable; month(): SugarDefaultChainable; monthAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; monthAgo(): SugarDefaultChainable; monthBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; monthFromNow(): SugarDefaultChainable; months(): SugarDefaultChainable; monthsAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; monthsAgo(): SugarDefaultChainable; monthsBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; monthsFromNow(): SugarDefaultChainable; second(): SugarDefaultChainable; secondAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; secondAgo(): SugarDefaultChainable; secondBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; secondFromNow(): SugarDefaultChainable; seconds(): SugarDefaultChainable; secondsAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; secondsAgo(): SugarDefaultChainable; secondsBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; secondsFromNow(): SugarDefaultChainable; week(): SugarDefaultChainable; weekAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; weekAgo(): SugarDefaultChainable; weekBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; weekFromNow(): SugarDefaultChainable; weeks(): SugarDefaultChainable; weeksAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; weeksAgo(): SugarDefaultChainable; weeksBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; weeksFromNow(): SugarDefaultChainable; year(): SugarDefaultChainable; yearAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; yearAgo(): SugarDefaultChainable; yearBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; yearFromNow(): SugarDefaultChainable; years(): SugarDefaultChainable; yearsAfter(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; yearsAgo(): SugarDefaultChainable; yearsBefore(d: string|number|Date, options?: Date.DateCreateOptions): SugarDefaultChainable; yearsFromNow(): SugarDefaultChainable; toExponential(fractionDigits?: number): SugarDefaultChainable; toFixed(fractionDigits?: number): SugarDefaultChainable; toLocaleString(locales?: string | string[], options?: Intl.NumberFormatOptions): SugarDefaultChainable; toPrecision(precision?: number): SugarDefaultChainable; } } namespace Object { type Chainable = ChainableBase; interface ChainableBase { raw: RawValue; valueOf: () => RawValue; toString: () => string; } } namespace RegExp { type Chainable = ChainableBase & Object.ChainableBase; interface ChainableBase { raw: RawValue; valueOf: () => RawValue; toString: () => string; exec(string: string): SugarDefaultChainable; test(string: string): SugarDefaultChainable; } } namespace String { type Chainable = ChainableBase & Object.ChainableBase; interface ChainableBase { raw: RawValue; valueOf: () => RawValue; toString: () => string; anchor(name: string): SugarDefaultChainable; big(): SugarDefaultChainable; blink(): SugarDefaultChainable; bold(): SugarDefaultChainable; charAt(pos: number): SugarDefaultChainable; charCodeAt(index: number): SugarDefaultChainable; codePointAt(pos: number): SugarDefaultChainable; concat(...strings: string[]): SugarDefaultChainable; endsWith(searchString: string, endPosition?: number): SugarDefaultChainable; fixed(): SugarDefaultChainable; fontcolor(color: string): SugarDefaultChainable; fontsize(size: number): SugarDefaultChainable; fontsize(size: string): SugarDefaultChainable; includes(searchString: string, position?: number): SugarDefaultChainable; indexOf(searchString: string, position?: number): SugarDefaultChainable; italics(): SugarDefaultChainable; lastIndexOf(searchString: string, position?: number): SugarDefaultChainable; link(url: string): SugarDefaultChainable; localeCompare(that: string): SugarDefaultChainable; localeCompare(that: string, locales?: string | string[], options?: Intl.CollatorOptions): SugarDefaultChainable; match(regexp: RegExp): SugarDefaultChainable; match(regexp: string): SugarDefaultChainable; normalize(form?: string): SugarDefaultChainable; normalize(form: "NFC" | "NFD" | "NFKC" | "NFKD"): SugarDefaultChainable; repeat(count: number): SugarDefaultChainable; replace(searchValue: string, replaceValue: string): SugarDefaultChainable; replace(searchValue: string, replacer: (substring: string, ...args: any[]) => string): SugarDefaultChainable; replace(searchValue: RegExp, replaceValue: string): SugarDefaultChainable; replace(searchValue: RegExp, replacer: (substring: string, ...args: any[]) => string): SugarDefaultChainable; search(regexp: RegExp): SugarDefaultChainable; search(regexp: string): SugarDefaultChainable; slice(start?: number, end?: number): SugarDefaultChainable; small(): SugarDefaultChainable; split(separator: string, limit?: number): SugarDefaultChainable; split(separator: RegExp, limit?: number): SugarDefaultChainable; startsWith(searchString: string, position?: number): SugarDefaultChainable; strike(): SugarDefaultChainable; sub(): SugarDefaultChainable; substr(from: number, length?: number): SugarDefaultChainable; substring(start: number, end?: number): SugarDefaultChainable; sup(): SugarDefaultChainable; toLocaleLowerCase(): SugarDefaultChainable; toLocaleUpperCase(): SugarDefaultChainable; toLowerCase(): SugarDefaultChainable; toUpperCase(): SugarDefaultChainable; trim(): SugarDefaultChainable; } } } declare module "sugar" { const Sugar: sugarjs.Sugar; export = Sugar; } declare var Sugar: sugarjs.Sugar;