import type { ObjectEntry } from '../types';
/**
 * Iterates through all keys in an object. Optionally provides traversal order. Does not support circular references and
 * will throw a RangeError with max call stack exceeded.
 * @todo // TODO: Add support for BFS traversal order.
 */
export declare class ObjectIterator<T extends Record<PropertyKey, any>> implements IterableIterator<ObjectEntry> {
    protected traversal: 'post-order-DFS' | 'pre-order-DFS' | 'BFS';
    protected inner: Iterator<ObjectEntry> | null;
    protected arr: ObjectEntry[];
    constructor(object: T, traversal?: 'post-order-DFS' | 'pre-order-DFS' | 'BFS');
    [Symbol.iterator](): IterableIterator<ObjectEntry>;
    next(...args: any[]): IteratorResult<ObjectEntry>;
    protected isObject(value: any): value is NonNullable<object>;
    protected push(obj: any): void;
}
export default ObjectIterator;
//# sourceMappingURL=ObjectIterator.d.ts.map