import { ConfigManager } from "@zwave-js/config";
import { type CommandClassInfo, type CommandClasses, type FLiRS, type GetNode, type GetValueDB, type InterviewStage, type MaybeNotKnown, type NodeStatus } from "@zwave-js/core";
import type { BaseTestEndpoint, BaseTestNode } from "@zwave-js/host";
import { Message } from "@zwave-js/serial";
import sinon from "sinon";
export declare class MockRequestMessageWithExpectation extends Message {
}
export declare class MockRequestMessageWithoutExpectation extends Message {
}
export declare class MockResponseMessage extends Message {
}
export declare const mockDriverDummyCallbackId = 254;
export declare function createEmptyMockDriver(): {
    sendMessage: sinon.SinonStub<any[], any>;
    sendCommand: sinon.SinonStub<any[], any>;
    getSupportedCCVersion: sinon.SinonStub<any[], any>;
    getSafeCCVersion: sinon.SinonStub<any[], any>;
    isCCSecure: sinon.SinonStub<any[], any>;
    getNextCallbackId: sinon.SinonStub<any[], any>;
    controller: {
        nodes: Map<any, any>;
        ownNodeId: number;
    };
    readonly nodes: Map<any, any>;
    readonly ownNodeId: number;
    valueDB: Map<any, any>;
    getValueDB: (nodeId: number) => any;
    metadataDB: Map<any, any>;
    networkCache: Map<any, any>;
    cacheGet: sinon.SinonStub<any[], any>;
    cacheSet: sinon.SinonStub<any[], any>;
    options: {
        timeouts: {
            ack: number;
            byte: number;
            response: number;
            report: number;
            nonce: number;
            sendDataCallback: number;
        };
        attempts: {
            sendData: number;
            controller: number;
        };
    };
    driverLog: {};
    controllerLog: {};
    configManager: ConfigManager;
    getLogConfig: () => {
        enabled: boolean;
        level: string;
    };
};
export interface CreateTestNodeOptions {
    id: number;
    isListening?: boolean | undefined;
    isFrequentListening?: FLiRS | undefined;
    status?: NodeStatus;
    interviewStage?: InterviewStage;
    isSecure?: MaybeNotKnown<boolean>;
    commandClasses?: Partial<Record<CommandClasses, Partial<CommandClassInfo>>>;
    endpoints?: Record<number, Omit<CreateTestEndpointOptions, "index" | "nodeId">>;
}
export type TestNode = BaseTestNode & {
    setEndpoint(endpoint: CreateTestEndpointOptions): void;
};
export declare function createTestNode(host: GetValueDB & GetNode<BaseTestNode>, options: CreateTestNodeOptions): TestNode;
export interface CreateTestEndpointOptions {
    nodeId: number;
    index: number;
    commandClasses?: Partial<Record<CommandClasses, Partial<CommandClassInfo>>>;
}
export declare function createTestEndpoint(host: GetNode<BaseTestNode>, options: CreateTestEndpointOptions): BaseTestEndpoint;
//# sourceMappingURL=mocks.d.ts.map