"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.io = io;
exports.forIO = forIO;
exports.forIOObjKV = forIOObjKV;
exports.forIOObjVK = forIOObjVK;
const object_1 = require("../util/object");
function io(callback) {
    callback('input');
    callback('output');
}
function forIO(data, callback) {
    if (data.input !== undefined) {
        callback('input', data.input);
    }
    if (data.output !== undefined) {
        callback('output', data.output);
    }
}
function forIOObjKV(data, callback) {
    forIO(data, (type, data) => {
        (0, object_1.forEachObjKV)(data, (key, value) => {
            callback(type, key, value);
        });
    });
}
function forIOObjVK(data, callback) {
    forIO(data, (type, data) => {
        (0, object_1.forEachObjVK)(data, (value, key) => {
            callback(type, value, key);
        });
    });
}
//# sourceMappingURL=IOOf.js.map