declare abstract class DataSegment implements Disposable {
    /**
     * The location of the data segment in memory in bytes. Value is established
     * when instance is constructed and cannot be changed
     */
    readonly byteOffset: number;
    /**
     * Given a non-zero pointer to some data segment in memory, creates a new
     * instance of the data segment as a wrapper class
     */
    constructor(byteOffset: number);
    getValue(): number;
    toString(): string;
    /**
     * Deallocates the memory used by the data segment
     *
     * @remarks `.delete()` is the convention Emscripten uses for freeing memory
     */
    abstract delete(): void;
    /**
     *
     *
     * Implements the `Disposable` interface as part of the ECMAScript Explicit
     * Ressource Management proposal. This way, users can either dispose resources
     * imperatively (`.delete()`) or declaratively (`using`)
     *
     * @see {@link https://github.com/tc39/proposal-explicit-resource-management}
     * @see {@link https://v8.dev/features/explicit-resource-management}
     * @see {@link https://www.typescriptlang.org/docs/handbook/release-notes/typescript-5-2.html#using-declarations-and-explicit-resource-management}
     */
    [Symbol.dispose](): void;
}
export { DataSegment };
