import { type BytesView } from "@zwave-js/shared"; import { type NVM, type NVMIO } from "./common/definitions.js"; import { PageWriteSize } from "./nvm3/consts.js"; import { type NVMSection } from "./nvm3/files/index.js"; import { type NVM3ObjectHeader } from "./nvm3/object.js"; import { type NVM3PageHeader } from "./nvm3/page.js"; export type NVM3PageInfo = NVM3PageHeader & { objects: NVM3ObjectHeader[]; }; export interface NVM3SectionInfo { pages: NVM3PageInfo[]; /** The index of the current page */ currentPage: number; /** The next byte to write in the current page */ offsetInPage: number; /** A map of file IDs and page indizes in which their last copy resides */ objectLocations: Map; } export type NVM3FileSystemInfo = { isSharedFileSystem: true; sections: Record<"all", NVM3SectionInfo>; } | { isSharedFileSystem: false; sections: Record; }; export interface NVM3Meta { sharedFileSystem: boolean; pageSize: number; deviceFamily: number; writeSize: PageWriteSize; memoryMapped: boolean; } export type NVM3EraseOptions = Partial; export declare class NVM3 implements NVM { constructor(io: NVMIO); private _io; private _access; private _info; get info(): NVM3FileSystemInfo | undefined; private ensureReadable; private ensureWritable; init(): Promise; private getNVMSectionForFile; has(fileId: number): Promise; readObjectData(object: NVM3ObjectHeader): Promise; get(fileId: number, section?: NVM3SectionInfo): Promise; private writeObjects; set(property: number, value: BytesView): Promise; /** Writes multiple values to the NVM at once. `null` / `undefined` cause the value to be deleted */ setMany(values: [number, BytesView | null | undefined][]): Promise; delete(property: number): Promise; erase(options?: NVM3EraseOptions): Promise; } //# sourceMappingURL=NVM3.d.ts.map