import { Kind } from '@fp4ts/core'; import { Eq, Monoid } from '@fp4ts/cats-kernel'; import { Applicative } from '../../../applicative'; import { Ior } from '../../ior'; import { Option } from '../../option'; import { Vector } from '../vector'; import { List } from '../list'; declare module './algebra' { interface Chain { readonly isEmpty: boolean; readonly nonEmpty: boolean; readonly size: number; readonly head: A; readonly headOption: Option; readonly tail: Chain; readonly last: A; readonly lastOption: Option; readonly init: Chain; readonly popHead: Option<[A, Chain]>; readonly uncons: Option<[A, Chain]>; readonly popLast: Option<[A, Chain]>; readonly toArray: A[]; readonly toList: List; readonly toVector: Vector; readonly iterator: Iterator; readonly reverseIterator: Iterator; [Symbol.iterator](): Iterator; readonly reverse: Chain; equals(this: Chain, E: Eq, that: Chain): boolean; notEquals(this: Chain, E: Eq, that: Chain): boolean; prepend(this: Chain, x: B): Chain; cons(this: Chain, x: B): Chain; '+::'(this: Chain, x: B): Chain; append(this: Chain, x: B): Chain; snoc(this: Chain, x: B): Chain; '::+'(this: Chain, x: B): Chain; concat(this: Chain, that: Chain): Chain; '+++'(this: Chain, that: Chain): Chain; deleteFirst(p: (a: A) => boolean): Option<[A, Chain]>; filter(p: (a: A) => boolean): Chain; collect(f: (a: A) => Option): Chain; collectWhile(f: (a: A) => Option): Chain; map(f: (a: A) => B): Chain; flatMap(f: (a: A) => Chain): Chain; coflatMap(f: (as: Chain) => B): Chain; readonly flatten: A extends Chain ? Chain : never; align(ys: Chain): Chain>; zip(ys: Chain): Chain<[A, B]>; zipWith(that: Chain, f: (a: A, b: B) => C): Chain; readonly zipWithIndex: Chain<[A, number]>; forEach(f: (a: A) => void): void; foldLeft(z: B, f: (b: B, a: A) => B): B; foldRight(z: B, f: (a: A, b: B) => B): B; foldMap(M: Monoid): (f: (a: A) => M) => M; foldMapLeft(M: Monoid): (f: (a: A) => M) => M; folding(this: Chain, M: Monoid): AA; traverse(G: Applicative): (f: (a: A) => Kind) => Kind]>; traverseFilter(G: Applicative): (f: (a: A) => Kind]>) => Kind]>; } } //# sourceMappingURL=syntax.d.ts.map