import * as O from "../../Option/index.js";
import * as STM from "../STM/index.js";
import * as TRef from "../TRef/index.js";
export declare const TArrayTypeId: unique symbol;
export declare type TArrayTypeId = typeof TArrayTypeId;
export declare class TArray {
readonly array: readonly TRef.TRef[];
readonly _typeId: TArrayTypeId;
constructor(array: readonly TRef.TRef[]);
}
/**
* Makes a new `TArray` initialized with provided iterable.
*/
export declare function fromIterable(it: Iterable): STM.STM>;
/**
* Makes a new `TArray` that is initialized with specified values.
*/
export declare function make(...data: ARGS): STM.STM>;
/**
* Makes a new `TArray` that is initialized with specified values.
*/
export declare function empty(): STM.STM>;
/**
* Extracts value from ref in array.
*/
export declare function get_(self: TArray, index: number): STM.STM;
/**
* Extracts value from ref in array.
*
* @ets_data_first get_
*/
export declare function get(index: number): (self: TArray) => STM.STM;
/**
* Find the first element in the array matching a predicate.
*/
export declare function find_(self: TArray, p: (a: A) => boolean): STM.STM>;
/**
* Find the first element in the array matching a predicate.
*
* @ets_data_first find_
*/
export declare function find(p: (a: A) => boolean): (self: TArray) => STM.STM>;
/**
* Find the last element in the array matching a predicate.
*/
export declare function findLast_(self: TArray, p: (a: A) => boolean): STM.STM>;
/**
* Find the last element in the array matching a predicate.
*
* @ets_data_first find_
*/
export declare function findLast(p: (a: A) => boolean): (self: TArray) => STM.STM>;
//# sourceMappingURL=index.d.ts.map