| import {Options as LocatePathOptions} from 'locate-path'; | 
|   | 
| declare const stop: unique symbol; | 
|   | 
| declare namespace findUp { | 
|     interface Options extends LocatePathOptions {} | 
|   | 
|     type StopSymbol = typeof stop; | 
|   | 
|     type Match = string | StopSymbol | undefined; | 
| } | 
|   | 
| declare const findUp: { | 
|     /** | 
|     Find a file or directory by walking up parent directories. | 
|   | 
|     @param name - Name of the file or directory to find. Can be multiple. | 
|     @returns The first path found (by respecting the order of `name`s) or `undefined` if none could be found. | 
|   | 
|     @example | 
|     ``` | 
|     // / | 
|     // └── Users | 
|     //     └── sindresorhus | 
|     //         ├── unicorn.png | 
|     //         └── foo | 
|     //             └── bar | 
|     //                 ├── baz | 
|     //                 └── example.js | 
|   | 
|     // example.js | 
|     import findUp = require('find-up'); | 
|   | 
|     (async () => { | 
|         console.log(await findUp('unicorn.png')); | 
|         //=> '/Users/sindresorhus/unicorn.png' | 
|   | 
|         console.log(await findUp(['rainbow.png', 'unicorn.png'])); | 
|         //=> '/Users/sindresorhus/unicorn.png' | 
|     })(); | 
|     ``` | 
|     */ | 
|     (name: string | string[], options?: findUp.Options): Promise<string | undefined>; | 
|   | 
|     /** | 
|     Find a file or directory by walking up parent directories. | 
|   | 
|     @param matcher - Called for each directory in the search. Return a path or `findUp.stop` to stop the search. | 
|     @returns The first path found or `undefined` if none could be found. | 
|   | 
|     @example | 
|     ``` | 
|     import path = require('path'); | 
|     import findUp = require('find-up'); | 
|   | 
|     (async () => { | 
|         console.log(await findUp(async directory => { | 
|             const hasUnicorns = await findUp.exists(path.join(directory, 'unicorn.png')); | 
|             return hasUnicorns && directory; | 
|         }, {type: 'directory'})); | 
|         //=> '/Users/sindresorhus' | 
|     })(); | 
|     ``` | 
|     */ | 
|     (matcher: (directory: string) => (findUp.Match | Promise<findUp.Match>), options?: findUp.Options): Promise<string | undefined>; | 
|   | 
|     sync: { | 
|         /** | 
|         Synchronously find a file or directory by walking up parent directories. | 
|   | 
|         @param name - Name of the file or directory to find. Can be multiple. | 
|         @returns The first path found (by respecting the order of `name`s) or `undefined` if none could be found. | 
|         */ | 
|         (name: string | string[], options?: findUp.Options): string | undefined; | 
|   | 
|         /** | 
|         Synchronously find a file or directory by walking up parent directories. | 
|   | 
|         @param matcher - Called for each directory in the search. Return a path or `findUp.stop` to stop the search. | 
|         @returns The first path found or `undefined` if none could be found. | 
|   | 
|         @example | 
|         ``` | 
|         import path = require('path'); | 
|         import findUp = require('find-up'); | 
|   | 
|         console.log(findUp.sync(directory => { | 
|             const hasUnicorns = findUp.sync.exists(path.join(directory, 'unicorn.png')); | 
|             return hasUnicorns && directory; | 
|         }, {type: 'directory'})); | 
|         //=> '/Users/sindresorhus' | 
|         ``` | 
|         */ | 
|         (matcher: (directory: string) => findUp.Match, options?: findUp.Options): string | undefined; | 
|   | 
|         /** | 
|         Synchronously check if a path exists. | 
|   | 
|         @param path - Path to the file or directory. | 
|         @returns Whether the path exists. | 
|   | 
|         @example | 
|         ``` | 
|         import findUp = require('find-up'); | 
|   | 
|         console.log(findUp.sync.exists('/Users/sindresorhus/unicorn.png')); | 
|         //=> true | 
|         ``` | 
|         */ | 
|         exists(path: string): boolean; | 
|     } | 
|   | 
|     /** | 
|     Check if a path exists. | 
|   | 
|     @param path - Path to a file or directory. | 
|     @returns Whether the path exists. | 
|   | 
|     @example | 
|     ``` | 
|     import findUp = require('find-up'); | 
|   | 
|     (async () => { | 
|         console.log(await findUp.exists('/Users/sindresorhus/unicorn.png')); | 
|         //=> true | 
|     })(); | 
|     ``` | 
|     */ | 
|     exists(path: string): Promise<boolean>; | 
|   | 
|     /** | 
|     Return this in a `matcher` function to stop the search and force `findUp` to immediately return `undefined`. | 
|     */ | 
|     readonly stop: findUp.StopSymbol; | 
| }; | 
|   | 
| export = findUp; |