/**
 * @license
 * Copyright 2025-2026 Open Home Foundation
 * SPDX-License-Identifier: Apache-2.0
 */
import { Environment, StorageService } from "@matter/main";
interface ConfigData {
    fabricLabel: string;
    nextNodeId: number | bigint;
    wifiSsid?: string;
    wifiCredentials?: string;
    threadDataset?: string;
}
export declare class ConfigStorage {
    #private;
    static create(env: Environment): Promise<ConfigStorage>;
    constructor(env: Environment);
    get service(): StorageService;
    open(): Promise<void>;
    get fabricLabel(): string;
    get nextNodeId(): number | bigint;
    /**
     * Atomically allocate the next free node id and persist the advanced counter.
     *
     * The mutex serializes concurrent commissioning requests so they cannot read the same counter and collide.
     * `isInUse` lets a drifted counter skip ids already assigned on the fabric instead of colliding with them.
     */
    allocateNodeId(isInUse: (nodeId: number | bigint) => boolean): Promise<number | bigint>;
    get wifiSsid(): string | undefined;
    get wifiCredentials(): string | undefined;
    get threadDataset(): string | undefined;
    set(data: Partial<ConfigData>): Promise<void>;
    removeWifiCredentials(): Promise<void>;
    removeThreadDataset(): Promise<void>;
    close(): Promise<void>;
}
export {};
//# sourceMappingURL=ConfigStorage.d.ts.map