interface String { toLower(): string; toUpper(): string; trim(): string; equals(str: string, ignoreCase?: boolean): boolean; startsWith(str: string, ignoreCase?: boolean): boolean; endsWith(str: string, ignoreCase?: boolean): boolean; contains(str: string, ignoreCase?: boolean): boolean; containsOnly(characters: string, ignoreCase?: boolean): boolean; left(length: number): string; right(length: number): string; shuffle(): string; repeat(iterations: number): string; replaceAll(target: string, replacement: string): string; padLeft(length: number, character: string): string; padRight(length: number, character: string): string; format(...args: any[]): string; toDate(): Date; toInt(): number; isInt(): boolean; } interface Number { between(min: number, max: number): boolean; addPercent(percent: number): number; percentageOf(total: number): number; in(numbers: Array): boolean; floor(): number; ceil(): number; round(): number; } interface Date { isToday(): boolean; isSameDay(value: Date): boolean; addYears(years: number): Date; addMonths(months: number): Date; addDays(days: number): Date; addHours(hours: number): Date; addMinutes(minutes: number): Date; addSeconds(seconds: number): Date; date(): Date; format(format: string): string; parse(format: string): Date; copy(): Date; isLeapYear(): boolean; } interface Array { contains(value: T): boolean; remove(value: T): void; addOrRemoveIfExists(value: T): void; pushIfNotExists(value: T): void; addRange(arr: Array): Array; clone(): Array; shuffle(): void; getRandomItem(): T; }