1declare namespace locatePath {
2	interface Options {
3		/**
4		Current working directory.
5
6		@default process.cwd()
7		*/
8		readonly cwd?: string;
9
10		/**
11		Type of path to match.
12
13		@default 'file'
14		*/
15		readonly type?: 'file' | 'directory';
16
17		/**
18		Allow symbolic links to match if they point to the requested path type.
19
20		@default true
21		*/
22		readonly allowSymlinks?: boolean;
23	}
24
25	interface AsyncOptions extends Options {
26		/**
27		Number of concurrently pending promises. Minimum: `1`.
28
29		@default Infinity
30		*/
31		readonly concurrency?: number;
32
33		/**
34		Preserve `paths` order when searching.
35
36		Disable this to improve performance if you don't care about the order.
37
38		@default true
39		*/
40		readonly preserveOrder?: boolean;
41	}
42}
43
44declare const locatePath: {
45	/**
46	Get the first path that exists on disk of multiple paths.
47
48	@param paths - Paths to check.
49	@returns The first path that exists or `undefined` if none exists.
50
51	@example
52	```
53	import locatePath = require('locate-path');
54
55	const files = [
56		'unicorn.png',
57		'rainbow.png', // Only this one actually exists on disk
58		'pony.png'
59	];
60
61	(async () => {
62		console(await locatePath(files));
63		//=> 'rainbow'
64	})();
65	```
66	*/
67	(paths: Iterable<string>, options?: locatePath.AsyncOptions): Promise<
68		string | undefined
69	>;
70
71	/**
72	Synchronously get the first path that exists on disk of multiple paths.
73
74	@param paths - Paths to check.
75	@returns The first path that exists or `undefined` if none exists.
76	*/
77	sync(
78		paths: Iterable<string>,
79		options?: locatePath.Options
80	): string | undefined;
81};
82
83export = locatePath;
84