import type { Eq } from "@principia/prelude/Eq"; import * as Ord from "@principia/prelude/Ord"; import type { Either } from "../Either"; import type { Predicate, Refinement } from "../Function"; import type { NonEmptyArray } from "../NonEmptyArray"; import type { Option } from "../Option"; export declare const append_: (xs: readonly A[], ys: readonly A[]) => readonly A[]; export declare const append: (ys: readonly A[]) => (xs: readonly A[]) => readonly A[]; export declare const lookup_: (i: number, as: readonly A[]) => Option; export declare const lookup: (i: number) => (as: readonly A[]) => Option; export declare const scanl: (b: B, f: (b: B, a: A) => B) => (as: readonly A[]) => readonly B[]; export declare const scanr: (b: B, f: (a: A, b: B) => B) => (as: readonly A[]) => readonly B[]; export declare const cons_: (head: A, tail: readonly A[]) => NonEmptyArray; export declare const cons: (tail: readonly A[]) => (head: A) => NonEmptyArray; export declare const snoc_: (init: readonly A[], end: A) => NonEmptyArray; export declare const snoc: (end: A) => (init: readonly A[]) => NonEmptyArray; export declare const head: (as: readonly A[]) => Option; export declare const tail: (as: readonly A[]) => Option; export declare const last: (as: readonly A[]) => Option; export declare const init: (as: readonly A[]) => Option; export declare const takel: (n: number) => (as: readonly A[]) => readonly A[]; export declare const taker: (n: number) => (as: readonly A[]) => readonly A[]; export declare const takelWhile: { (refinement: Refinement): (as: ReadonlyArray) => ReadonlyArray; (predicate: Predicate): (as: ReadonlyArray) => ReadonlyArray; }; export interface Spanned { readonly init: ReadonlyArray; readonly rest: ReadonlyArray; } export declare const spanl: { (refinement: Refinement): (as: ReadonlyArray) => Spanned; (predicate: Predicate): (as: ReadonlyArray) => Spanned; }; export declare const dropl: (n: number) => (as: readonly A[]) => readonly A[]; export declare const dropr: (n: number) => (as: readonly A[]) => readonly A[]; export declare const droprWhile: (predicate: Predicate) => (as: readonly A[]) => readonly A[]; export declare const findr: { (refinement: Refinement): (as: ReadonlyArray) => Option; (predicate: Predicate): (as: ReadonlyArray) => Option; }; export declare const findrMap: (f: (a: A) => Option) => (as: readonly A[]) => Option; export declare const findl: { (refinement: Refinement): (as: ReadonlyArray) => Option; (predicate: Predicate): (as: ReadonlyArray) => Option; }; export declare const findlMap: (f: (a: A) => Option) => (as: readonly A[]) => Option; export declare const findlIndex_: (as: readonly A[], predicate: Predicate) => Option; export declare const findlIndex: (predicate: Predicate) => (as: readonly A[]) => Option; export declare const findrIndex: (predicate: Predicate) => (as: readonly A[]) => Option; export declare const unsafeInsertAt: (i: number, a: A, as: readonly A[]) => readonly A[]; export declare const unsafeUpdateAt: (i: number, a: A, as: readonly A[]) => readonly A[]; export declare const unsafeDeleteAt: (i: number, as: readonly A[]) => readonly A[]; export declare const insertAt_: (as: readonly A[], i: number, a: A) => Option; export declare const insertAt: (i: number, a: A) => (as: readonly A[]) => Option; export declare const updateAt_: (as: readonly A[], i: number, a: A) => Option; export declare const updateAt: (i: number, a: A) => (as: readonly A[]) => Option; export declare const deleteAt_: (as: readonly A[], i: number) => Option; export declare const deleteAt: (i: number) => (as: readonly A[]) => Option; /** * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out * of bounds * * @since 1.0.0 */ export declare const modifyAt_: (as: readonly A[], i: number, f: (a: A) => A) => Option; /** * Apply a function to the element at the specified index, creating a new array, or returning `None` if the index is out * of bounds * * @since 1.0.0 */ export declare const modifyAt: (i: number, f: (a: A) => A) => (as: readonly A[]) => Option; export declare const reverse: (as: readonly A[]) => readonly A[]; export declare const rights: (as: readonly Either[]) => readonly A[]; export declare const lefts: (as: readonly Either[]) => readonly E[]; export declare const sort: (O: Ord.Ord) => (as: readonly A[]) => readonly A[]; export declare const unzip: (as: readonly (readonly [A, B])[]) => readonly [readonly A[], readonly B[]]; export declare const elem: (E: Eq) => (a: A) => (as: readonly A[]) => boolean; export declare const uniq: (E: Eq) => (as: readonly A[]) => readonly A[]; export declare const sortBy: (ords: readonly Ord.Ord[]) => (as: readonly A[]) => readonly A[]; export declare const comprehension: { ( input: readonly [ReadonlyArray, ReadonlyArray, ReadonlyArray, ReadonlyArray], f: (a: A, b: B, c: C, d: D) => R, g?: (a: A, b: B, c: C, d: D) => boolean ): ReadonlyArray; ( input: readonly [ReadonlyArray, ReadonlyArray, ReadonlyArray], f: (a: A, b: B, c: C) => R, g?: (a: A, b: B, c: C) => boolean ): ReadonlyArray; ( input: readonly [ReadonlyArray, ReadonlyArray], f: (a: A, b: B) => R, g?: (a: A, b: B) => boolean ): ReadonlyArray; (input: readonly [ReadonlyArray], f: (a: A) => boolean, g?: (a: A) => R): ReadonlyArray; }; export declare const union: (E: Eq) => (ys: readonly A[]) => (xs: readonly A[]) => readonly A[]; export declare const intersection: (E: Eq) => (ys: readonly A[]) => (xs: readonly A[]) => readonly A[]; export declare const chop_: ( as: readonly A[], f: (as: NonEmptyArray) => readonly [B, readonly A[]] ) => readonly B[]; export declare const chop: ( f: (as: NonEmptyArray) => readonly [B, readonly A[]] ) => (as: readonly A[]) => readonly B[]; export declare const splitAt: (n: number) => (as: readonly A[]) => readonly [readonly A[], readonly A[]]; export declare const chunksOf: (n: number) => (as: readonly A[]) => readonly (readonly A[])[]; export declare const difference: (E: Eq) => (ys: readonly A[]) => (xs: readonly A[]) => readonly A[]; export declare const dropLeft_: (as: readonly A[], n: number) => readonly A[]; export declare const dropLeft: (n: number) => (as: readonly A[]) => readonly A[]; export declare const dropRight_: (as: readonly A[], n: number) => readonly A[]; export declare const dropRight: (n: number) => (as: readonly A[]) => readonly A[]; export declare const dropLeftWhile_: (as: readonly A[], predicate: Predicate) => readonly A[]; export declare const dropLeftWhile: (predicate: Predicate) => (as: readonly A[]) => readonly A[]; //# sourceMappingURL=combinators.d.ts.map