1. /**
    
  2.  * Copyright (c) Meta Platforms, Inc. and affiliates.
    
  3.  *
    
  4.  * This source code is licensed under the MIT license found in the
    
  5.  * LICENSE file in the root directory of this source tree.
    
  6.  *
    
  7.  * @flow
    
  8.  */
    
  9. 
    
  10. /* eslint-disable */
    
  11. 
    
  12. // libdefs cannot actually import. These are supposed to be the types imported
    
  13. // from 'react-native-renderer/src/ReactNativeTypes'
    
  14. type __MeasureOnSuccessCallback = any;
    
  15. type __MeasureInWindowOnSuccessCallback = any;
    
  16. type __MeasureLayoutOnSuccessCallback = any;
    
  17. type __ReactNativeBaseComponentViewConfig = any;
    
  18. type __ViewConfigGetter = any;
    
  19. type __ViewConfig = any;
    
  20. 
    
  21. // libdefs cannot actually import. This is supposed to be the type imported
    
  22. // from 'react-native-renderer/src/legacy-events/TopLevelEventTypes';
    
  23. type __RNTopLevelEventType = any;
    
  24. 
    
  25. // libdefs cannot actually import. This is supposed to be the type imported
    
  26. // from 'react-reconciler/src/ReactCapturedValue'
    
  27. type __CapturedError = any;
    
  28. 
    
  29. type DeepDifferOptions = {+unsafelyIgnoreFunctions?: boolean};
    
  30. type RawEventEmitterEvent = $ReadOnly<{
    
  31.   eventName: string,
    
  32.   // We expect, but do not/cannot require, that nativeEvent is an object
    
  33.   // with the properties: key, elementType (string), type (string), tag (numeric),
    
  34.   // and a stateNode of the native element/Fiber the event was emitted to.
    
  35.   nativeEvent: {[string]: mixed, ...},
    
  36. }>;
    
  37. 
    
  38. declare module 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface' {
    
  39.   declare export function deepDiffer(
    
  40.     one: any,
    
  41.     two: any,
    
  42.     maxDepth?: number,
    
  43.     options?: DeepDifferOptions,
    
  44.   ): boolean;
    
  45.   declare export function deepDiffer(
    
  46.     one: any,
    
  47.     two: any,
    
  48.     options: DeepDifferOptions,
    
  49.   ): boolean;
    
  50.   declare export function deepFreezeAndThrowOnMutationInDev<T>(obj: T): T;
    
  51.   declare export function flattenStyle(style: any): any;
    
  52.   declare export var RCTEventEmitter: {
    
  53.     register: (eventEmitter: mixed) => void,
    
  54.     ...
    
  55.   };
    
  56.   declare export var TextInputState: {
    
  57.     blurTextInput: (object: any) => void,
    
  58.     focusTextInput: (object: any) => void,
    
  59.     ...
    
  60.   };
    
  61.   declare export var ReactFiberErrorDialog: {
    
  62.     showErrorDialog: (error: __CapturedError) => boolean,
    
  63.     ...
    
  64.   };
    
  65.   declare export var Platform: {OS: string, ...};
    
  66.   declare export var UIManager: {
    
  67.     customBubblingEventTypes: Object,
    
  68.     customDirectEventTypes: Object,
    
  69.     createView: (
    
  70.       reactTag: number,
    
  71.       viewName: string,
    
  72.       rootTag: number,
    
  73.       props: ?Object,
    
  74.     ) => void,
    
  75.     dispatchViewManagerCommand: (
    
  76.       reactTag: number,
    
  77.       command: string,
    
  78.       args: Array<any>,
    
  79.     ) => void,
    
  80.     manageChildren: (
    
  81.       containerTag: number,
    
  82.       moveFromIndices: Array<number>,
    
  83.       moveToIndices: Array<number>,
    
  84.       addChildReactTags: Array<number>,
    
  85.       addAtIndices: Array<number>,
    
  86.       removeAtIndices: Array<number>,
    
  87.     ) => void,
    
  88.     measure: (hostComponent: mixed, callback: Function) => void,
    
  89.     measureInWindow: (nativeTag: ?number, callback: Function) => void,
    
  90.     measureLayout: (
    
  91.       nativeTag: mixed,
    
  92.       nativeNode: number,
    
  93.       onFail: Function,
    
  94.       onSuccess: Function,
    
  95.     ) => void,
    
  96.     removeRootView: (containerTag: number) => void,
    
  97.     removeSubviewsFromContainerWithID: (containerId: number) => void,
    
  98.     replaceExistingNonRootView: () => void,
    
  99.     setChildren: (containerTag: number, reactTags: Array<number>) => void,
    
  100.     updateView: (reactTag: number, viewName: string, props: ?Object) => void,
    
  101.     __takeSnapshot: (
    
  102.       view?: 'window' | Element<any> | number,
    
  103.       options?: {
    
  104.         width?: number,
    
  105.         height?: number,
    
  106.         format?: 'png' | 'jpeg',
    
  107.         quality?: number,
    
  108.         ...
    
  109.       },
    
  110.     ) => Promise<any>,
    
  111.     setJSResponder: (reactTag: number, blockNativeResponder: boolean) => void,
    
  112.     clearJSResponder: () => void,
    
  113.     findSubviewIn: (
    
  114.       reactTag: ?number,
    
  115.       point: Array<number>,
    
  116.       callback: (
    
  117.         nativeViewTag: number,
    
  118.         left: number,
    
  119.         top: number,
    
  120.         width: number,
    
  121.         height: number,
    
  122.       ) => void,
    
  123.     ) => void,
    
  124.     ...
    
  125.   };
    
  126.   declare export var legacySendAccessibilityEvent: (
    
  127.     reactTag: number,
    
  128.     eventTypeName: string,
    
  129.   ) => void;
    
  130.   declare export var BatchedBridge: {
    
  131.     registerCallableModule: (name: string, module: Object) => void,
    
  132.     ...
    
  133.   };
    
  134.   declare export var ReactNativeViewConfigRegistry: {
    
  135.     customBubblingEventTypes: Object,
    
  136.     customDirectEventTypes: Object,
    
  137. 
    
  138.     register: (name: string, callback: __ViewConfigGetter) => string,
    
  139.     get: (name: string) => __ReactNativeBaseComponentViewConfig,
    
  140.     ...
    
  141.   };
    
  142.   declare export var RawEventEmitter: {
    
  143.     emit: (channel: string, event: RawEventEmitterEvent) => string,
    
  144.     ...
    
  145.   };
    
  146.   declare export opaque type PublicInstance;
    
  147.   declare export opaque type PublicTextInstance;
    
  148.   declare export function getNodeFromPublicInstance(
    
  149.     publicInstance: PublicInstance,
    
  150.   ): Object;
    
  151.   declare export function getNativeTagFromPublicInstance(
    
  152.     publicInstance: PublicInstance,
    
  153.   ): number;
    
  154.   declare export function createPublicInstance(
    
  155.     tag: number,
    
  156.     viewConfig: __ViewConfig,
    
  157.     internalInstanceHandle: mixed,
    
  158.   ): PublicInstance;
    
  159.   declare export function createPublicTextInstance(
    
  160.     internalInstanceHandle: mixed,
    
  161.   ): PublicTextInstance;
    
  162. }
    
  163. 
    
  164. declare module 'react-native/Libraries/ReactPrivate/ReactNativePrivateInitializeCore' {
    
  165. }
    
  166. 
    
  167. // This is needed for a short term solution.
    
  168. // See https://github.com/facebook/react/pull/15490 for more info
    
  169. declare var nativeFabricUIManager: {
    
  170.   createNode: (
    
  171.     reactTag: number,
    
  172.     viewName: string,
    
  173.     rootTag: number,
    
  174.     props: ?Object,
    
  175.     eventTarget: Object,
    
  176.   ) => Object,
    
  177.   cloneNode: (node: Object) => Object,
    
  178.   cloneNodeWithNewChildren: (
    
  179.     node: Object,
    
  180.     children?: $ReadOnlyArray<Object>,
    
  181.   ) => Object,
    
  182.   cloneNodeWithNewProps: (node: Object, newProps: ?Object) => Object,
    
  183.   cloneNodeWithNewChildrenAndProps: (
    
  184.     node: Object,
    
  185.     newPropsOrChildren: ?Object | $ReadOnlyArray<Object>,
    
  186.     newProps?: ?Object,
    
  187.   ) => Object,
    
  188.   appendChild: (node: Object, childNode: Object) => void,
    
  189. 
    
  190.   createChildSet: () => Object,
    
  191.   appendChildToSet: (childSet: Object, childNode: Object) => void,
    
  192.   completeRoot: (rootTag: number, childSet: Object) => void,
    
  193.   registerEventHandler: (
    
  194.     callback: (
    
  195.       eventTarget: null | Object,
    
  196.       type: __RNTopLevelEventType,
    
  197.       payload: Object,
    
  198.     ) => void,
    
  199.   ) => void,
    
  200.   setNativeProps: (node: Object, nativeProps: Object) => Object,
    
  201.   dispatchCommand: (node: Object, command: string, args: Array<any>) => void,
    
  202.   sendAccessibilityEvent: (node: Object, eventTypeName: string) => void,
    
  203. 
    
  204.   measure: (node: Object, callback: __MeasureOnSuccessCallback) => void,
    
  205.   measureInWindow: (
    
  206.     node: Object,
    
  207.     callback: __MeasureInWindowOnSuccessCallback,
    
  208.   ) => void,
    
  209.   measureLayout: (
    
  210.     node: Object,
    
  211.     relativeNode: Object,
    
  212.     onFail: () => void,
    
  213.     onSuccess: __MeasureLayoutOnSuccessCallback,
    
  214.   ) => void,
    
  215.   getBoundingClientRect: (
    
  216.     node: Object,
    
  217.   ) => [
    
  218.     /* x:*/ number,
    
  219.     /* y:*/ number,
    
  220.     /* width:*/ number,
    
  221.     /* height:*/ number,
    
  222.   ],
    
  223.   findNodeAtPoint: (
    
  224.     node: Object,
    
  225.     locationX: number,
    
  226.     locationY: number,
    
  227.     callback: (Object) => void,
    
  228.   ) => void,
    
  229.   setIsJSResponder: (
    
  230.     node: Object,
    
  231.     isJsResponder: boolean,
    
  232.     blockNativeResponder: boolean,
    
  233.   ) => void,
    
  234.   unstable_DefaultEventPriority: number,
    
  235.   unstable_DiscreteEventPriority: number,
    
  236.   unstable_getCurrentEventPriority: () => number,
    
  237.   ...
    
  238. };