import { AsyncFunction, AsyncGeneratorFunction } from '@terminal-nerds/snippets-type/built-in'; type AnyFunction = (..._args: any) => any; declare function validateFunction(value: unknown): asserts value is AnyFunction; /** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function} Function */ declare function isFunction(value: unknown): value is AnyFunction; /** * Credits: https://github.com/inspect-js/is-arrow-function/blob/main/index.js * * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions} Arrow function */ declare function isArrowFunction(_function: AnyFunction): boolean; /** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions} Simple function */ declare function isSimpleFunction(_function: AnyFunction): boolean; /** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function} Async function */ declare function isAsyncFunction(_function: AnyFunction): _function is typeof AsyncFunction; /** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function} Async generator function */ declare function isAsyncGeneratorFunction(_function: AnyFunction): _function is typeof AsyncGeneratorFunction; /** @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function} Generator function */ declare function isGeneratorFunction(_function: AnyFunction): _function is GeneratorFunction; type FunctionType = /** Arrow function `async () => {}` */ "arrow" /** Arrow and asynchronous function `async () => {}` */ | "arrow-async" /** A classic, simple function `function name() {}` */ | "simple" /** A classic, simple and asynchronous function `async function name() {}` */ | "simple-async" /** A classic, simple, asynchronous and generator function `async function* name() {}` */ | "simple-async-generator" /** A classic, simple and generator function `function* name() {}` */ | "simple-generator"; /** @see {@link FunctionType} */ declare function getFunctionType(_function: AnyFunction): FunctionType; export { AnyFunction, FunctionType, getFunctionType, isArrowFunction, isAsyncFunction, isAsyncGeneratorFunction, isFunction, isGeneratorFunction, isSimpleFunction, validateFunction };