import * as L from "./index"; import { List } from "./index"; export { Node, List, list, isList, length, of, empty, first, head, last, flatten, pop, init, tail, from, toArray, reverse, backwards, sort, group, dropRepeats, isEmpty } from "./index"; export interface Curried2 { (a: A): (b: B) => R; (a: A, b: B): R; } export interface Curried3 { (a: A, b: B, c: C): R; (a: A, b: B): (c: C) => R; (a: A): Curried2; } export declare const prepend: typeof L.prepend & ((value: A) => (l: List) => List); export declare const append: typeof prepend; export declare const pair: typeof L.pair & ((first: A) => (second: A) => List); export declare const repeat: typeof L.repeat & ((value: A) => (times: number) => List); export declare const times: typeof L.times & ((func: (index: number) => A) => (times: number) => List); export declare const nth: typeof L.nth & ((index: number) => (l: List) => A | undefined); export declare const map: typeof L.map & ((f: (a: A) => B) => (l: List) => List); export declare const forEach: typeof L.forEach & ((callback: (a: A) => void) => (l: List) => void); export declare const pluck: typeof L.pluck & ((key: K) => (l: List) => List); export declare const intersperse: typeof prepend; export declare const range: typeof L.range & ((start: number) => (end: number) => List); export declare const filter: typeof L.filter & ((predicate: (a: A) => a is B) => (l: List) => List) & ((predicate: (a: A) => boolean) => (l: List) => List); export declare const reject: typeof filter; export declare const partition: typeof L.partition & ((predicate: (a: A) => boolean) => (l: List) => [List, List]); export declare const join: typeof L.join & ((seperator: string) => (l: List) => List); export declare const ap: typeof L.ap & ((listF: List<(a: A) => B>) => (l: List) => List); export declare const flatMap: typeof L.flatMap & ((f: (a: A) => List) => (l: List) => List); export declare const chain: typeof L.flatMap & ((f: (a: A) => L.List) => (l: L.List) => L.List); export declare const every: typeof L.every & ((predicate: (a: A) => boolean) => (l: List) => boolean); export declare const all: typeof every; export declare const some: typeof every; export declare const any: typeof every; export declare const none: typeof every; export declare const find: typeof L.find & ((predicate: (a: A) => boolean) => (l: List) => A | undefined); export declare const findLast: typeof find; export declare const indexOf: typeof L.indexOf & ((element: A) => (l: List) => number); export declare const lastIndexOf: typeof indexOf; export declare const findIndex: typeof L.findIndex & ((predicate: (a: A) => boolean) => (l: List) => number); export declare const includes: typeof L.includes & ((element: A) => (l: List) => number); export declare const contains: typeof L.includes & ((element: A) => (l: L.List) => number); export declare const equals: typeof L.equals & ((first: List) => (second: List) => boolean); export declare const concat: typeof L.concat & ((left: List) => (right: List) => List); export declare const take: typeof L.take & ((n: number) => (l: List) => List); export declare const takeLast: typeof take; export declare const drop: typeof take; export declare const dropRepeatsWith: typeof L.dropRepeatsWith & ((f: (a: A, b: A) => boolean) => (l: List) => List); export declare const dropLast: typeof take; export declare const takeWhile: typeof filter; export declare const takeLastWhile: typeof filter; export declare const dropWhile: typeof filter; export declare const splitAt: typeof L.splitAt & ((index: number) => (l: List) => [List, List]); export declare const splitWhen: typeof L.splitWhen & ((predicate: (a: A) => boolean) => (l: List) => [List, List]); export declare const splitEvery: typeof L.splitEvery & ((size: number) => (l: List) => List>); export declare const sortBy: typeof L.sortBy & ((f: (a: A) => B) => (l: List) => List); export declare const sortWith: typeof L.sortWith & ((comparator: (a: A, b: A) => L.Ordering) => (l: List) => List); export declare const groupWith: typeof L.groupWith & ((f: (a: A, b: A) => boolean) => (l: List) => List>); export declare const zip: typeof L.zip & ((as: List) => (bs: List) => List<[A, B]>); export declare const sequence: typeof L.sequence & ((ofObj: L.Of) => (l: List>) => any); export declare const foldl: typeof L.foldl & { (f: (acc: B, value: A) => B): Curried2, B>; (f: (acc: B, value: A) => B, initial: B): (l: List) => B; }; export declare const reduce: typeof foldl; export declare const scan: typeof L.scan & { (f: (acc: B, value: A) => B): Curried2, List>; (f: (acc: B, value: A) => B, initial: B): (l: List) => List; }; export declare const foldr: typeof L.foldl & { (f: (value: A, acc: B) => B): Curried2, B>; (f: (value: A, acc: B) => B, initial: B): (l: List) => B; }; export declare const traverse: typeof L.traverse & { (of: L.Of): ((f: (a: A) => L.Applicative) => (l: List) => any) & ((f: (a: A) => L.Applicative, l: List) => any); (of: L.Of, f: (a: A) => L.Applicative): (l: List) => any; }; export declare const equalsWith: typeof L.equalsWith & { (f: (a: A, b: A) => boolean): Curried2, List, boolean>; (f: (a: A, b: A) => boolean, l1: List): (l2: List) => boolean; }; export declare const reduceRight: typeof foldr; export declare const update: typeof L.update & { (index: number, a: A): (l: List) => List; (index: number): ((a: A, l: List) => List) & ((a: A) => (l: List) => List); }; export declare const adjust: typeof L.adjust & { (index: number, f: (value: A) => A): (l: List) => List; (index: number): (f: (value: A) => A, l: List) => List & ((f: (value: A) => A) => (l: List) => List); }; export declare const slice: typeof L.slice & { (from: number): ((to: number) => (l: List) => List) & ((to: number, l: List) => List); (from: number, to: number): (l: List) => List; }; export declare const remove: typeof slice; export declare const insert: typeof update; export declare const insertAll: typeof L.insertAll & { (index: number, elements: List): (l: List) => List; (index: number): ((elements: List, l: List) => List) & ((elements: List) => (l: List) => List); }; export declare const zipWith: typeof L.zipWith & { (f: (a: A, b: B) => C, as: List): (bs: List) => List; (f: (a: A, b: B) => C): Curried2, List, List>; }; export declare const foldlWhile: typeof L.foldlWhile & { (predicate: (acc: B, value: A) => boolean, f: (acc: B, value: A) => B, initial: B): (l: List) => B; (predicate: (acc: B, value: A) => boolean, f: (acc: B, value: A) => B): Curried2, B>; (predicate: (acc: B, value: A) => boolean): Curried3<(acc: B, value: A) => B, B, List, B>; }; export declare const reduceWhile: typeof foldlWhile;