/***
 * **File System Walker(s)**
 *
 * @example
 * import { Walk, Walker } from "./walk";
 *
 * /// Callback Example
 * const example = async () => {
 *     await Walk(process.cwd(), (error: Error | null, results: string[]) => {
 *         console.log(error, results);
 *     });
 * };
 *
 * await example();
 *
 * @example
 * import { Walk, Walker } from "./walk";
 *
 * /// Promise Example
 * const example = async () => console.log(await Walker(process.cwd()));
 *
 * await example();
 *
 */
/***
 * File-System Walker
 *
 * There are two types of runtime loops in an asynchronous-based environment:
 * - ***serial***
 * - ***parallel***
 *
 * A serial loop waits for one iteration to complete before it moves onto the next iteration - guarantees that every iteration of the loop completes in order.
 *
 * In a parallel loop, all the iterations are started at the same time, and one may complete before another; however, parallel loops are much faster than serial loops.
 *
 * The following implementation elects the ***Parallel*** type.
 *
 * @param {string} directory
 * @param {Function} callback
 *
 */
declare const Walk: (directory: string, callback: Function) => void;
/***
 * ***Walk*** Promise Wrapper
 *
 * @augments Walk
 *
 * @type {(directory: string) => Promise<string[]}
 *
 * @see {@link Walk}
 *
 */
declare const Walker: (directory: string) => Promise<string[]>;
export { Walk, Walker };
export default Walker;
