/** * 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 * @oncall react_native */ type RawBuffer = Array; export interface _ChromeHeapSnapshot_snapshot { meta: { trace_function_info_fields: Array; location_fields: Array; edge_fields: Array; edge_types: Array>; node_fields: Array; node_types: Array>; trace_node_fields: Array; }; } export interface ChromeHeapSnapshot { snapshot: _ChromeHeapSnapshot_snapshot; trace_function_infos: Array; locations: Array; edges: Array; nodes: Array; strings: Array; trace_tree: RawBuffer; } export declare class ChromeHeapSnapshotProcessor { readonly _snapshotData: ChromeHeapSnapshot; readonly _globalStringTable: ChromeHeapSnapshotStringTable; constructor(snapshotData: ChromeHeapSnapshot); traceFunctionInfos(): ChromeHeapSnapshotRecordIterator; locations(): ChromeHeapSnapshotRecordIterator; nodes(): ChromeHeapSnapshotRecordIterator; edges(): ChromeHeapSnapshotRecordIterator; traceTree(): ChromeHeapSnapshotRecordIterator; } declare class ChromeHeapSnapshotStringTable { readonly _strings: Array; readonly _indexCache: Map; constructor(strings: Array); add(value: string): number; get(index: number): string; _syncIndexCache(): void; } type ChromeHeapSnapshotFieldType = Array | string; export interface DenormalizedRecordInput { readonly [field: string]: string | number | ReadonlyArray; } declare class ChromeHeapSnapshotRecordAccessor { readonly _fieldToOffset: ReadonlyMap; readonly _fieldToType: ReadonlyMap; readonly _recordSize: number; readonly _buffer: RawBuffer; readonly _globalStringTable: ChromeHeapSnapshotStringTable; _position: number; constructor(buffer: RawBuffer, recordFields: Array, recordTypes: Array | { readonly [$$Key$$: string]: ChromeHeapSnapshotFieldType; } | null, globalStringTable: ChromeHeapSnapshotStringTable, position: number, parent?: ChromeHeapSnapshotRecordAccessor); getString(field: string): string; getNumber(field: string): number; getChildren(field: string): ChromeHeapSnapshotRecordIterator; setString(field: string, value: string): void; setNumber(field: string, value: number): void; moveToRecord(recordIndex: number): void; append(record: DenormalizedRecordInput): number; moveAndInsert(recordIndex: number, record: DenormalizedRecordInput): number; protectedHasNext(): boolean; protectedTryMoveNext(): void; _getRaw(field: string): number | RawBuffer; _getScalar(field: string): string | number; _setRaw(field: string, rawValue: number | RawBuffer): void; _set(field: string, value: string | number | ReadonlyArray): void; _setChildren(field: string, value: ReadonlyArray): void; _encodeString(field: string, value: string): number; _validatePosition(allowEnd?: boolean, position?: number): void; _moveToPosition(nextPosition: number, allowEnd: boolean): void; } declare class ChromeHeapSnapshotRecordIterator extends ChromeHeapSnapshotRecordAccessor implements Iterable { constructor(buffer: RawBuffer, recordFields: Array, recordTypes: Array | { readonly [$$Key$$: string]: ChromeHeapSnapshotFieldType; } | null, globalStringTable: ChromeHeapSnapshotStringTable, position: number, parent?: ChromeHeapSnapshotRecordAccessor); next(): { done: boolean; readonly value: ChromeHeapSnapshotRecordIterator; }; }