/** Run now */ export declare function run(f: () => U): U; /** Do nothing * * ```ts * let a: undefined = call() * ``` */ export declare function call(): void; /** Run now * * ```ts * let b: 0 = call(() => 0) * ``` */ export declare function call(f: () => U): U; /** Call function * * ```ts * let a: undefined = call() * let b: 0 = call(() => 0) * let c: 1 = call(1, v => v) * let d: 3 = call(1, 2, (a, b) => a + b) * ``` */ export declare function call(...args: [...args: A, f: (...args: A) => U]): U; /** Use a value and make a mapping */ export declare function used(v: T, f: (v: T) => U): U; /** Use value and do something extra */ export declare function also(v: T, f: (v: T) => void): T; /** Do nothing * * ```ts * let a: undefined = collect() * ``` */ export declare function collect(): void; /** Collect Iterable or Generator * * ```ts * let b: 1 = collect(function* () { yield 1 }) * ``` */ export declare function collect(f: () => Iterable): T[]; /** Call function * * ```ts * let a: undefined = collect() * let b: 1 = collect(function* () { yield 1 }) * let c: [1, 2, 3] = collect(1, 2, 3, function* (a, b, c) { yield* [a, b, c] }) * ``` */ export declare function collect(...args: [...args: A, f: (...args: A) => Iterable]): T[];