import * as Tp from "../../../Structural/index.js"; import type { ForcedArray } from "../../../Utils/index.js"; export declare const TupleSym: unique symbol; export declare type TupleSym = typeof TupleSym; export declare function isTuple(self: unknown): self is Tuple; export declare class Tuple implements Iterable { readonly tuple: T; [TupleSym](): TupleSym; constructor(tuple: T); [Symbol.iterator](): IterableIterator; get [Tp.hashSym](): number; [Tp.equalsSym](that: unknown): boolean; get(i: K): T[K]; } /** * Creates a new Tuple */ export declare function tuple(...args: Ks): Tuple; /** * Gets an element from the tuple * * @ets_data_first get_ */ export declare function get(i: I): (self: Tuple) => Ks[I]; /** * Gets an element from the tuple */ export declare function get_(self: Tuple, i: I): Ks[I]; /** * Converts to native tuple type */ export declare function toNative(self: Tuple): Ks; /** * Converts from native tuple type */ export declare function fromNative(self: Ks): Tuple; /** * Replaces the element in position I * * @ets_data_first update_ */ export declare function update(i: I, f: (_: Ks[I]) => J): (self: Tuple) => Tuple>; /** * Replaces the element in position I */ export declare function update_(self: Tuple, i: I, f: (_: Ks[I]) => J): Tuple>; /** * Appends a value to a tuple * * @ets_data_first append_ */ export declare function append(k: K): (self: Tuple) => Tuple<[...Ks, K]>; /** * Appends a value to a tuple */ export declare function append_(self: Tuple, k: K): Tuple<[...Ks, K]>; /** * Appends a value to a tuple * * @ets_data_first prepend_ */ export declare function prepend(k: K): (self: Tuple) => Tuple<[K, ...Ks]>; /** * Prepends a value to a tuple */ export declare function prepend_(self: Tuple, k: K): Tuple<[K, ...Ks]>; /** * Concat tuples * * @ets_data_first concat_ */ export declare function concat(that: Tuple): (self: Tuple) => Tuple<[...Ks, ...Hs]>; /** * Concat tuples */ export declare function concat_(self: Tuple, that: Tuple): Tuple<[...Ks, ...Hs]>; //# sourceMappingURL=index.d.ts.map