interface Iterable { [Symbol.iterator](): Iterator; } type InferIterable = T extends Iterable ? Iterator : unknown extends T ? Iterator | undefined : undefined; declare function getIterator(iterable: T): InferIterable; export = getIterator;