import { type Fn, type PFn, type PromiseChange, type AutoPipeShuntReturn, type AutoPipeShunt, type AutoCollPipeShunt, type PipeShuntReturn, type PipeShunt, type CollPipeShunt, type PromisePipeShuntReturn, type PromiseCollPipeShunt, type PromisePipeShunt } from '../../mod.js';
interface AutoLazyPipe {
/** ## lzpipe : 惰性运行的{@link pipe}
@example
```ts
//Synchronization function
const res = pipe(
1,//1
(x: number) => x + 1,//2
(x: number) => x * 2,//4
(x: number) => x + 1,//5
)
assertEquals(res(), 5)
//Asynchronous function
const res2 = await pipe(
's',
(x: string) => x + 'a',
async (x: string) => x + 'b',
))
assertEquals(res2(), 'sab')
```
*/
(a: A): () => A;
(a: A, b: PFn): () => AutoPipeShuntReturn;
(a: A, b: PFn, c: PFn, C>): () => AutoPipeShuntReturn;
(a: A, b: PFn, c: PFn, C>, d: PFn, D>): () => AutoPipeShuntReturn, D>;
(a: A, b: PFn, c: PFn, C>, d: PFn, D>, e: PFn, E>): () => AutoPipeShuntReturn, D>, E>;
(a: A, b: PFn, c: PFn, C>, d: PFn, D>, e: PFn, E>, f: PFn, F>): () => AutoPipeShuntReturn, D>, E>, F>;
(a: A, b: PFn, c: PFn, C>, d: PFn, D>, e: PFn, E>, f: PFn, F>, g: PFn, G>): () => AutoPipeShuntReturn, D>, E>, F>, G>;
(a: A, b: PFn, c: PFn, C>, d: PFn, D>, e: PFn, E>, f: PFn, F>, g: PFn, G>, h: PFn, H>): () => AutoPipeShuntReturn, D>, E>, F>, G>, H>;
(a: A, b: PFn, c: PFn, C>, d: PFn, D>, e: PFn, E>, f: PFn, F>, g: PFn, G>, h: PFn, H>, i: PFn, I>): () => AutoPipeShuntReturn, D>, E>, F>, G>, H>, I>;
(a: any, ...fns: Array>): () => any;
}
interface SyncLazyPipe {
(a: A): () => A;
(a: A, ab: Fn): () => PipeShuntReturn;
(a: A, ab: Fn, bc: Fn, C>): () => PipeShuntReturn;
(a: A, ab: Fn, bc: Fn, C>, cd: Fn, D>): () => PipeShuntReturn, D>;
(a: A, ab: Fn, bc: Fn, C>, cd: Fn, D>, de: Fn, E>): () => PipeShuntReturn, D>, E>;
(a: A, ab: Fn, bc: Fn, C>, cd: Fn, D>, de: Fn, E>, ef: Fn, F>): () => PipeShuntReturn, D>, E>, F>;
(a: A, ab: Fn, bc: Fn, C>, cd: Fn, D>, de: Fn, E>, ef: Fn, F>, fg: Fn, G>): () => PipeShuntReturn, D>, E>, F>, G>;
(a: A, ab: Fn, bc: Fn, C>, cd: Fn, D>, de: Fn, E>, ef: Fn, F>, fg: Fn, G>, gh: Fn, H>): () => PipeShuntReturn, D>, E>, F>, G>, H>;
(a: A, ab: Fn, bc: Fn, C>, cd: Fn, D>, de: Fn, E>, ef: Fn, F>, fg: Fn, G>, gh: Fn, H>, hi: Fn, I>): () => PipeShuntReturn, D>, E>, F>, G>, H>, I>;
(a: any, ...fns: Array>): () => any;
}
interface AsyncLazyPipe {
(a: A): () => PromiseChange;
(a: A, ab: PFn): () => PromisePipeShuntReturn;
(a: A, ab: PFn, bc: PFn, C>): () => PromisePipeShuntReturn;
(a: A, ab: PFn, bc: PFn, C>, cd: PFn, D>): () => PromisePipeShuntReturn, D>;
(a: A, ab: PFn, bc: PFn, C>, cd: PFn, D>, de: PFn, E>): () => PromisePipeShuntReturn, D>, E>;
(a: A, ab: PFn, bc: PFn, C>, cd: PFn, D>, de: PFn, E>, ef: PFn, F>): () => PromisePipeShuntReturn, D>, E>, F>;
(a: A, ab: PFn, bc: PFn, C>, cd: PFn, D>, de: PFn, E>, ef: PFn, F>, fg: PFn, G>): () => PromisePipeShuntReturn, D>, E>, F>, G>;
(a: A, ab: PFn, bc: PFn, C>, cd: PFn, D>, de: PFn, E>, ef: PFn, F>, fg: PFn, G>, gh: PFn, H>): () => PromisePipeShuntReturn, D>, E>, F>, G>, H>;
(a: A, ab: PFn, bc: PFn, C>, cd: PFn, D>, de: PFn, E>, ef: PFn, F>, fg: PFn, G>, gh: PFn, H>, hi: PFn, I>): () => PromisePipeShuntReturn, D>, E>, F>, G>, H>, I>;
(a: any, ...fns: Array>): () => PromiseChange;
}
interface LazyPipe extends AutoLazyPipe {
readonly sync: SyncLazyPipe;
readonly async: AsyncLazyPipe;
}
/** ## lzpipe : 惰性运行的{@link pipe}
@example
```ts
//Synchronization function
const res = pipe(
1,//1
(x: number) => x + 1,//2
(x: number) => x * 2,//4
(x: number) => x + 1,//5
)
assertEquals(res(), 5)
//Asynchronous function
const res2 = await pipe(
's',
(x: string) => x + 'a',
async (x: string) => x + 'b',
))
assertEquals(res2(), 'sab')
```
*/
export declare const lzpipe: LazyPipe;
export {};
//# sourceMappingURL=lazyPipe.d.ts.map