"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const number_allocator_1 = require("number-allocator");
class UniqueMessageIdProvider {
    numberAllocator;
    lastId;
    constructor() {
        this.numberAllocator = new number_allocator_1.NumberAllocator(1, 65535);
    }
    allocate() {
        this.lastId = this.numberAllocator.alloc();
        return this.lastId;
    }
    getLastAllocated() {
        return this.lastId;
    }
    register(messageId) {
        return this.numberAllocator.use(messageId);
    }
    deallocate(messageId) {
        this.numberAllocator.free(messageId);
    }
    clear() {
        this.numberAllocator.clear();
    }
}
exports.default = UniqueMessageIdProvider;
//# sourceMappingURL=unique-message-id-provider.js.map