/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow */ type JSONValue = | string | boolean | number | null | {+[key: string]: JSONValue} | $ReadOnlyArray; declare module 'JSResourceReference' { declare export interface JSResourceReference { getModuleId(): string; getModuleIdAsRef(): $Flow$ModuleRef; getModuleIfRequired(): ?T; load(): Promise; preload(): void; } } declare module 'JSResourceReferenceImpl' { declare export default class JSResourceReferenceImpl { getModuleId(): string; getModuleIdAsRef(): $Flow$ModuleRef; getModuleIfRequired(): ?T; load(): Promise; preload(): void; } } declare module 'ReactFlightDOMRelayServerIntegration' { import type {JSResourceReference} from 'JSResourceReference'; declare export opaque type Destination; declare export opaque type BundlerConfig; declare export function emitRow( destination: Destination, json: JSONValue, ): void; declare export function close(destination: Destination): void; declare export type ModuleMetaData = JSONValue; declare export function resolveModuleMetaData( config: BundlerConfig, resourceReference: JSResourceReference, ): ModuleMetaData; } declare module 'ReactFlightDOMRelayClientIntegration' { import type {JSResourceReference} from 'JSResourceReference'; declare export opaque type ModuleMetaData; declare export function resolveModuleReference( moduleData: ModuleMetaData, ): JSResourceReference; declare export function preloadModule( moduleReference: JSResourceReference, ): null | Promise; declare export function requireModule( moduleReference: JSResourceReference, ): T; } declare module 'ReactFlightNativeRelayServerIntegration' { import type {JSResourceReference} from 'JSResourceReference'; declare export opaque type Destination; declare export opaque type BundlerConfig; declare export function emitRow( destination: Destination, json: JSONValue, ): void; declare export function close(destination: Destination): void; declare export type ModuleMetaData = JSONValue; declare export function resolveModuleMetaData( config: BundlerConfig, resourceReference: JSResourceReference, ): ModuleMetaData; } declare module 'ReactFlightNativeRelayClientIntegration' { import type {JSResourceReference} from 'JSResourceReference'; declare export opaque type ModuleMetaData; declare export function resolveModuleReference( moduleData: ModuleMetaData, ): JSResourceReference; declare export function preloadModule( moduleReference: JSResourceReference, ): null | Promise; declare export function requireModule( moduleReference: JSResourceReference, ): T; }