import { TapConfigurator } from "./tap-configurator";
import { ComProtocol } from "../../protocol/api/com-protocol.interface";
/**
 * Describe Tap Device behaviors.
 */
export interface TapInterface {
    /**
     * Attempt connection
     * @param protocol
     */
    connect(protocol?: ComProtocol): Promise<void>;
    /**
     * Attempt disconnection
     */
    disconnect(): Promise<void>;
    /**
     * Configure this with the given TapConfigurator.
     * Return a promise with the configurator result
     *
     * @param configurator
     */
    configure<DataType>(configurator: TapConfigurator<DataType>): Promise<DataType>;
}
