import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; export enum NormalizedScriptLocatorHTTPMethod { GET = 'GET', POST = 'POST', } export enum NormalizedScriptLocatorSignatureVerificationMode { STRICT = 'strict', LAX = 'lax', OFF = 'off', } export interface NormalizedScriptLocator { uniqueId: string; method: NormalizedScriptLocatorHTTPMethod; url: string; fetch: boolean; timeout: number; absolute: boolean; query: string | undefined; headers: { [key: string]: string } | undefined; body: string | undefined; verifyScriptSignature: NormalizedScriptLocatorSignatureVerificationMode; } export interface Spec extends TurboModule { loadScript( scriptId: string, scriptConfig: NormalizedScriptLocator ): Promise; prefetchScript( scriptId: string, scriptConfig: NormalizedScriptLocator ): Promise; invalidateScripts(scripts: Array): Promise; unstable_evaluateScript( scriptSource: string, scriptSourceUrl: string ): boolean; } export default TurboModuleRegistry.get('ScriptManager') as Spec;