/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { ConnectionlessTransport, ConnectionlessTransportSet, NetworkInterface, NetworkInterfaceDetailed } from "#general";
import type { ServerNode } from "#node/ServerNode.js";
import { BleAdvertiser, DeviceAdvertiser, MdnsAdvertiser } from "#protocol";
import { NetworkRuntime } from "./NetworkRuntime.js";
/**
 * Handles network functionality for {@link NodeServer}.
 */
export declare class ServerNetworkRuntime extends NetworkRuntime {
    #private;
    constructor(owner: ServerNode);
    get owner(): ServerNode;
    /**
     * Access the MDNS advertiser for the node.
     */
    get mdnsAdvertiser(): MdnsAdvertiser;
    get networkInterfaceConfiguration(): NetworkInterface[];
    getNetworkInterfaces(): Promise<NetworkInterfaceDetailed[]>;
    /**
     * A BLE advertiser.
     */
    protected get bleAdvertiser(): BleAdvertiser;
    /**
     * A BLE transport.
     */
    protected get bleTransport(): ConnectionlessTransport;
    /**
     * Add transports to the {@link ConnectionlessTransportSet}.
     */
    protected addTransports(interfaces: ConnectionlessTransportSet): Promise<void>;
    /**
     * Add broadcasters to the {@link DeviceAdvertiser}.
     */
    protected addBroadcasters(advertiser: DeviceAdvertiser): Promise<void>;
    /**
     * When the first Fabric gets added we need to enable MDNS broadcasting.
     */
    ensureMdnsAdvertiser(): void;
    /**
     * On commission we turn off bluetooth and join the IP network if we haven't already.
     *
     * On decommission we're destroyed so don't need to handle that case.
     */
    endUncommissionedMode(): void;
    protected start(): Promise<void>;
    protected stop(): Promise<void>;
}
//# sourceMappingURL=ServerNetworkRuntime.d.ts.map