import type { Asyncify } from 'type-fest';
export type AsyncifyArray = {
[Key in keyof Input]: (Input[Key] extends (...arguments_: any) => any ? Asyncify : Input[Key]);
};
export type AsyncifyParameters any, FunctionTypeArguments = AsyncifyArray>> = FunctionTypeArguments extends any[] ? FunctionTypeArguments : [];
export interface PathOperationSet any, FunctionTypeArguments extends any[] = AsyncifyParameters, AsyncFunctionType = (...arguments_: FunctionTypeArguments) => Promise>> {
sync: FunctionType;
async: AsyncFunctionType;
}
export interface PathResolver extends PathOperationSet<(path: string) => T> {
}
export type PathResolverFunction = PathResolver['sync'];
export type PathResolverFunctionAsync = PathResolver['async'];
export interface PathPredicate extends PathOperationSet<(path: string) => boolean> {
}
export type PathPredicateFunction = PathPredicate['sync'];
export type PathPredicateFunctionAsync = PathPredicate['async'];
export interface PathWalkerProcessFunction {
(path: string): T;
}
export interface PathWalkerOverload {
(path: string, predicate: PathPredicateFunction): string;
(path: string, predicate: PathPredicateFunction, process?: PathWalkerProcessFunction): T;
}
export interface PathWalker extends PathOperationSet> {
}
export type PathWalkerFunction = PathWalker['sync'];
export type PathWalkerFunctionAsync = PathWalker['async'];
//# sourceMappingURL=types.d.ts.map