import type { PHNodeHeapReader } from "./PHNodeHeapReader.js"; import type { PropertyValueResolver } from "./PropertyValueResolver.js"; export interface PrimitiveTypeConverterArg { /** * Access to raw property value. * * Do not modify the contents. */ view: DataView; /** * Access to heap reader. */ heap: PHNodeHeapReader; /** * Get bytes from either raw property value or heap. */ getBytes: (numBytes: number) => Promise; /** * Resolve heap by hnid. */ resolveHeap: (heap: number) => Promise; /** * Convert ansiString to unicode string. */ convertAnsiStringImmediately: (data: Uint8Array) => string; } /** * @example * * ```ts * async function convertShortProperty(arg: PrimitiveTypeConverterArg): Promise { * return arg.view.getInt16(0, true); * } * ``` * * ```ts * async function convertAnsiStringProperty(arg: PrimitiveTypeConverterArg): Promise { * const heap = arg.view.getUint32(0, true); * const bytes = await arg.resolveHeap(heap); * return (bytes !== undefined) * ? arg.convertAnsiString(new Uint8Array(bytes)) * : undefined; * } * ``` */ export type PrimitiveTypeConverter = (arg: PrimitiveTypeConverterArg) => Promise; /** * @internal */ export declare class PropertyValueResolverV1 implements PropertyValueResolver { private convertAnsiString; private provideTypeConverterOf; constructor(convertAnsiString: (data: Uint8Array) => string, provideTypeConverterOf?: (type: number) => PrimitiveTypeConverter | undefined, provideFallbackTypeConverterOf?: (type: number) => PrimitiveTypeConverter | undefined); resolveValueOf(key: number, type: number, value: ArrayBuffer, heap: PHNodeHeapReader): Promise; }