/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { Behavior } from "#behavior/Behavior.js";
import { MdnsScannerTargetCriteria } from "#protocol";
/**
 * Node controller functionality.
 *
 * For our purposes, a "controller" is a node that supports commissioning of remote devices.
 *
 * This class initializes components required for controller usage and tracks active discoveries.  Discovery logic
 * resides in {@link Discovery} and commissioning logic in {@link CommissioningClient}.
 */
export declare class ControllerBehavior extends Behavior {
    #private;
    static readonly id = "controller";
    internal: ControllerBehavior.Internal;
    state: ControllerBehavior.State;
    initialize(): Promise<void>;
    [Symbol.asyncDispose](): Promise<void>;
}
export declare namespace ControllerBehavior {
    class Internal {
        /**
         * MDNS scanner criteria for each controlled fabric (keyed by operational ID).
         */
        mdnsTargetCriteria: MdnsScannerTargetCriteria;
    }
    class State {
        /**
         * Set to false to disable scanning on BLE.
         *
         * By default the controller scans via BLE if BLE is available.
         */
        ble?: boolean;
        /**
         * Set to false to disable scanning on IP networks.
         *
         * By default the controller always scans on IP networks.
         */
        ip?: boolean;
        /**
         * Contains the label of the admin fabric which is set for all commissioned devices
         */
        adminFabricLabel: string;
    }
}
//# sourceMappingURL=ControllerBehavior.d.ts.map