From bb4597fbdc565be2697e5d1e119b03f74a124804 Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Fri, 9 Oct 2026 11:29:03 +0200 Subject: [PATCH 1/2] fix(react-native): add missing `AssetRegistry` TypeScript types --- .../react-native/types_DEPRECATED/index.d.ts | 1 + .../src/private/assets/AssetRegistry.d.ts | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 packages/react-native/types_DEPRECATED/src/private/assets/AssetRegistry.d.ts diff --git a/packages/react-native/types_DEPRECATED/index.d.ts b/packages/react-native/types_DEPRECATED/index.d.ts index b5541260cb62..a98e1f004510 100644 --- a/packages/react-native/types_DEPRECATED/index.d.ts +++ b/packages/react-native/types_DEPRECATED/index.d.ts @@ -144,6 +144,7 @@ export * as CodegenTypes from './Libraries/Types/CodegenTypesNamespace'; export * from './Libraries/Types/CoreEventTypes'; export * from './Libraries/Utilities/Appearance'; export * from './Libraries/Utilities/BackHandler'; +export * from './src/private/assets/AssetRegistry'; export * from './src/private/devsupport/devmenu/DevMenu'; export * from './Libraries/Utilities/DevSettings'; export * from './Libraries/Utilities/Dimensions'; diff --git a/packages/react-native/types_DEPRECATED/src/private/assets/AssetRegistry.d.ts b/packages/react-native/types_DEPRECATED/src/private/assets/AssetRegistry.d.ts new file mode 100644 index 000000000000..54999965f773 --- /dev/null +++ b/packages/react-native/types_DEPRECATED/src/private/assets/AssetRegistry.d.ts @@ -0,0 +1,42 @@ +/** + * 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. + * + * @format + */ + +export type AssetDestPathResolver = 'android' | 'generic'; + +export interface PackagerAsset { + __packager_asset: boolean; + fileSystemLocation: string; + httpServerLocation: string; + width: number | null | undefined; + height: number | null | undefined; + scales: number[]; + hash: string; + name: string; + type: string; + resolver?: AssetDestPathResolver | undefined; +} + +/** + * Runtime registry that maps asset IDs generated in a Metro bundle to asset + * metadata. It backs ``, `Image.resolveAssetSource()`, and any code + * that resolves `require('./img.png')` on native. + * + * Most apps do not use this directly — assets are handled through ``. + */ +export declare const AssetRegistry: { + /** + * Register an asset. Returns the asset ID. + */ + registerAsset(asset: PackagerAsset): number; + + /** + * Retrieve a registered asset by ID. + */ + getAssetByID(assetId: number): PackagerAsset; +}; From c91c1240aa83ffb71285a955719c399af1c8c47c Mon Sep 17 00:00:00 2001 From: Cedric van Putten Date: Fri, 9 Oct 2026 12:31:25 +0200 Subject: [PATCH 2/2] refactor(react-native): use `interface` over inline `const` definition for better TypeScript handling --- .../types_DEPRECATED/src/private/assets/AssetRegistry.d.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/react-native/types_DEPRECATED/src/private/assets/AssetRegistry.d.ts b/packages/react-native/types_DEPRECATED/src/private/assets/AssetRegistry.d.ts index 54999965f773..0b20d323a96c 100644 --- a/packages/react-native/types_DEPRECATED/src/private/assets/AssetRegistry.d.ts +++ b/packages/react-native/types_DEPRECATED/src/private/assets/AssetRegistry.d.ts @@ -29,7 +29,7 @@ export interface PackagerAsset { * * Most apps do not use this directly — assets are handled through ``. */ -export declare const AssetRegistry: { +export interface AssetRegistry { /** * Register an asset. Returns the asset ID. */ @@ -39,4 +39,6 @@ export declare const AssetRegistry: { * Retrieve a registered asset by ID. */ getAssetByID(assetId: number): PackagerAsset; -}; +} + +export declare const AssetRegistry: AssetRegistry;