export declare namespace DebuggingTools { type DefinedTable = DefinedMap | DefinedArray; type DefinedMap = Map; type DefinedArray = Array; /**writes the error in the console and doesnt stop anything */ export function SafeError(message: string): void; /** * @returns list of all different keys */ export function GetDifferentKeys(map_1: Map, map_2: Map): string[]; export function FindFirstTable(array: Array): T | undefined; export function PrintAndReturn(value: T): T; /** * prints the map, useful to debug in the RobloxPlayer Console (F9) */ export function PrintMap(map: DefinedMap, scope?: number, exceptions?: Array): void; export namespace Instances { type RecursiveInstanceMap = Map; export function GetInstanceTree(instance: Instance): RecursiveInstanceMap; type RecursiveStringMap = Map; export function GetInstanceStringTree(instance: Instance, use_full_name?: boolean, use_class_name?: boolean): RecursiveStringMap; export function AnalizeInstanceStringTreeAndReturn(turn_arrays_into_maps: boolean, exact_values: boolean, ...args: Parameters): Map)[]>)[]>)[]>)[]>)[]>)[]>)[]>)[]>)[]>)[]>; export {}; } export namespace JSONAnalizer { type RecursiveTable = Map; function AnalizeJSON(data: DefinedTable, turn_arrays_into_maps?: boolean, exact_values?: boolean): RecursiveTable; type RecursiveMap = Map; /** * @param turn_arrays_into_maps will treat the indexes as keys so all instances like * ```[number]: [[0]: number] will be [0...12]: [[0]: number]``` * * @param exact_values will return exact values instead of type e.g * ```[number]: {[0]: "hello", [1]: "world", [3]: "!"}```, equivalent to ```("hello" | "world" | "!")[]``` * * @returns analized content of the json, * looks like * * ```ts * { * [key]: [number] // key not optional variable that is a number * [key?]: [number, string] //key is optional variable that is a number or string * [key]: [ //key is not optional variable that is {name: string | number, sub_key?: number} * { * [name]: [string, number] * [sub_key?] [number] * } * ] * [number]: [ //equivalent to number[] * [0]: number * ] * [number]: [ //equivalent to string[] * [0]: string * ] * } * ``` * * can be confusing for results like * ```lua * { * [key] = { * [0] = {[name?]: string}, * } * ``` * it still means {[key]: {name?: string}} * * useful for analizing large databases */ export function AnalizeAndReturnJson(...args: Parameters): RecursiveMap; /** * @param turn_arrays_into_maps will treat the indexes as keys so all instances like * ```[number]: [[0]: number] will be [0...12]: [[0]: number]``` * * @param exact_values will return exact values instead of type e.g * ```[number]: {[0]: "hello", [1]: "world", [3]: "!"}```, equivalent to ```("hello" | "world" | "!")[]``` * * @returns analized content of the json, * looks like * * ```ts * { * [key]: [number] // key not optional variable that is a number * [key?]: [number, string] //key is optional variable that is a number or string * [key]: [ //key is not optional variable that is {name: string | number, sub_key?: number} * { * [name]: [string, number] * [sub_key?] [number] * } * ] * [number]: [ //equivalent to number[] * [0]: number * ] * [number]: [ //equivalent to string[] * [0]: string * ] * } * ``` * * can be confusing for results like * ```lua * { * [key] = { * [0] = {[name?]: string}, * } * ``` * it still means {[key]: {name?: string}} * * useful for analizing large databases */ export function AnalizeAndPrintJson(...args: Parameters): void; export {}; } export {}; }