import { ApiLevelSwitch } from "../apiLevel/apiLevelUtils"; export declare type BreakIterator = (func: (key: string, value: any, src: object | any[]) => Promise) => Promise; export default class Iterator { /** * Create an iterator (closure) that can be used later to iterator over an object or array. * The iterator is also breakable by returning a true. * Notice that the array or object should not be changed after creating the closure. * @param value */ static createBreakIterator(value: object | any[]): BreakIterator; /** * Iterate sync over an array or object. * @param func * @param value */ static iterateSync(func: (key: string, value: any, src: object | any[]) => void, value: object | any[]): void; /** * A method that will help to iterate over components * which can have an API level e.g., controllers or databoxes. * @param definition * @param iterator */ static iterateCompDefinition(definition: T | ApiLevelSwitch, iterator: (tClass: T, key: string | undefined) => void): void; }