/** * One draw from a resource prototype: the value lent and its way back. * * Each lease is its own object, also when several carry the same value, and * releases once: a second {@link release} does nothing. Works with `using`. * * @typeParam T - The value, e.g. a texture. */ export declare class DIVEResourceLease implements Disposable { readonly value: T; private _onRelease; private _released; /** * @param value - What the lease lends. * @param _onRelease - Gives it back, called once. */ constructor(value: T, _onRelease: () => void); /** Whether it was given back. */ get released(): boolean; /** Gives the value back to its prototype. */ release(): void; [Symbol.dispose](): void; }