import type { Metro } from '@revenge-mod/modules/types' import type { ImageProps, ScrollViewProps, TextProps, ViewProps, } from 'react-native' /// REACT NATIVE COMPONENTS declare module 'react' { namespace JSX { interface IntrinsicElements { // TODO(PalmDevs): more intrinsic elements? RCTView: ViewProps RCTImage: ImageProps RCTScrollView: ScrollViewProps RCTText: TextProps } } } /// HERMES declare global { function setTimeout( cb: (...args: unknown[]) => unknown, timeout?: number, ): number /** * Calls the garbage collector */ function gc(): void interface HermesInternalObject { getRuntimeProperties(): Record // biome-ignore lint/complexity/noBannedTypes: You can pass any function here getFunctionLocation(fn: Function): { fileName: string lineNumber: number columnNumber: number segmentID: number virtualOffset: number isNative: boolean } } } /// HERMES PROMISES declare global { interface Promise { /// PROMISE POLYFILLS FROM: https://github.com/then/promise /// AND: https://github.com/facebook/hermes/blob/main/lib/InternalBytecode/01-Promise.js _h: 0 | 1 | 2 /** * The resolved value of the promise, if it has been resolved. */ _j: any } type HermesPromiseRejectionHandler = ( promise: Promise, error: any, ) => void interface PromiseConstructor { _m: HermesPromiseRejectionHandler } } /// REACT DEVTOOLS declare global { var __REACT_DEVTOOLS_GLOBAL_HOOK__: unknown | undefined var __REACT_DEVTOOLS__: | { version: number exports: { connectToDevTools(opts: { host?: string port?: number websocket?: WebSocket }): void } } | undefined } /// METRO declare global { var __METRO_GLOBAL_PREFIX__: '' var __d: Metro.DefineFn var __r: Metro.Require var __c: Metro.ClearFn var __registerSegment: Metro.RegisterSegmentFn } /// REACT NATIVE declare global { var nativeModuleProxy: Record var __turboModuleProxy: ((name: string) => unknown) | undefined function nativeLoggingHook(str: string, level: number): void function RN$registerCallableModule( name: string, moduleProvider: () => object, ): void function alert(message: unknown): void function queueMicrotask(cb: () => void): void var nativePerformanceNow: typeof performance.now var performance: { now(): number } }