import type { Fields } from './boxes/Fields.js'; import type { FullBox } from './boxes/FullBox.js'; import type { IsoBmffBox } from './boxes/IsoBmffBox.js'; import type { IsoViewConfig } from './IsoViewConfig.js'; import type { IsoFieldTypeMap } from './readers/IsoFieldTypeMap.js'; /** * Raw ISO BMFF data box. * * @group ISOBMFF * * @beta */ export type RawBox = { type: string; size: number; largesize?: number; usertype?: number[]; data: IsoView; }; /** * ISO BMFF data view. Similar to DataView, but with additional methods for reading ISO BMFF data. * It implements the iterator protocol, so it can be used in a for...of loop. * * @group ISOBMFF * * @beta */ export declare class IsoView { private dataView; private offset; private config; private truncated; /** * Creates a new IsoView instance. Similar to DataView, but with additional * methods for reading ISO BMFF data. It implements the iterator protocol, * so it can be used in a for...of loop. * * @param raw - The raw data to view. * @param config - The configuration for the IsoView. */ constructor(raw: ArrayBuffer | DataView | Uint8Array, config?: IsoViewConfig); /** * The current byteoffset in the data view. */ get cursor(): number; /** * Whether the end of the data view has been reached. */ get done(): boolean; /** * The number of bytes remaining in the data view. */ get bytesRemaining(): number; /** * Creates a new IsoView instance with a slice of the current data view. * * @param size - The size of the slice. * @returns A new IsoView instance. */ slice: (size: number) => IsoView; private read; /** * Reads a unsigned integer from the data view. * * @param size - The size of the integer in bytes. * @returns The unsigned integer. */ readUint: (size: number) => number; /** * Reads a signed integer from the data view. * * @param size - The size of the integer in bytes. * @returns The signed integer. */ readInt: (size: number) => number; /** * Reads a string from the data view. * * @param size - The size of the string in bytes. * @returns The string. */ readString: (size: number) => string; /** * Reads a template from the data view. * * @param size - The size of the template in bytes. * @returns The template. */ readTemplate: (size: number) => number; /** * Reads a byte array from the data view. * * @param size - The size of the data in bytes. * @returns The data. */ readData: (size: number) => Uint8Array; /** * Reads a UTF-8 string from the data view. * * @param size - The size of the string in bytes. * @returns The UTF-8 string. */ readUtf8: (size?: number) => string; /** * Reads a full box from the data view. * * @returns The full box. */ readFullBox: () => Fields; /** * Reads an array of values from the data view. * * @param type - The type of the values. * @param size - The size of the values in bytes. * @param length - The number of values to read. * @returns The array of values. */ readArray: (type: T, size: number, length: number) => IsoFieldTypeMap[T][]; /** * Reads a raw box from the data view. * * @returns The box. */ readBox: () => RawBox; /** * Reads a number of boxes from the data view. * * @param length - The number of boxes to read. * @returns The boxes. */ readBoxes: (length: number) => T[]; /** * Reads a number of entries from the data view. * * @param length - The number of entries to read. * @param map - The function to map the entries. * @returns The entries. */ readEntries: (length: number, map: () => T) => T[]; /** * Iterates over the boxes in the data view. * * @returns A generator of boxes. */ [Symbol.iterator](): Generator; } //# sourceMappingURL=IsoView.d.ts.map