/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { ChannelType } from "#net/Channel.js";
import { Network, NetworkInterface, NetworkInterfaceDetails } from "../Network.js";
import type { TcpConnection, TcpListener, TcpListenerOptions } from "../tcp/TcpConnection.js";
import { UdpSocketOptions } from "../udp/UdpSocket.js";
import { MockRouter } from "./MockRouter.js";
import { MockTcpListener } from "./MockTcpListener.js";
import { MockUdpSocket } from "./MockUdpSocket.js";
import type { NetworkSimulator } from "./NetworkSimulator.js";
export declare class MockNetwork extends Network {
    #private;
    readonly router: MockRouter;
    constructor(simulator: NetworkSimulator, mac: string, ips: string[]);
    get simulator(): NetworkSimulator;
    addAddr(...ips: string[]): void;
    deleteAddr(...ips: string[]): void;
    addMembership(...multicastIps: string[]): void;
    dropMembership(...multicastIps: string[]): void;
    isMemberOf(multicastIp: string): boolean;
    shouldReceive(ip: string): boolean;
    set defaultRoute(ip: string | undefined);
    get defaultRoute(): string;
    getNetInterfaces(): NetworkInterface[];
    getIpMac(name: string): NetworkInterfaceDetails;
    createUdpSocket(options: UdpSocketOptions): Promise<MockUdpSocket>;
    createTcpListener(options: TcpListenerOptions): Promise<TcpListener>;
    connectTcp(host: string, port: number): Promise<TcpConnection>;
    registerTcpListener(server: MockTcpListener): void;
    unregisterTcpListener(port: number): void;
    supports(type: ChannelType, _address: string): type is ChannelType.UDP | ChannelType.TCP;
    close(): Promise<void>;
}
//# sourceMappingURL=MockNetwork.d.ts.map