import { LSA, LSAwP } from "../types"; import { Unpacked } from "../types/util-types"; export declare enum ArrayCreatorKeys { CONCAT = "CONCAT", DROP = "DROP", FILTER = "FILTER", PUSH = "PUSH" } export declare type ArrayCreators = { concat(arr: LeafT): LSAwP; drop(n?: number): LSAwP; filter(cb: FilterCallback>): LSAwP>>; push(element: Unpacked, index?: number, replace?: boolean): LSAwP<{ element: Unpacked; index?: number; replace?: boolean; }>; }; declare type FilterCallback = (element: E, index: number, source: E[]) => boolean; export declare type ArrayActions, LeafT extends unknown[] = unknown[], TreeT = unknown> = ReturnType[KeyT]>; export declare function isDropAction(action: LSA): action is ArrayActions<'drop'>; export declare function isConcatActionArray(action: LSA): action is ArrayActions<'concat', LeafT, unknown>; export declare function isFilterAction(action: LSA): action is ArrayActions<'filter', LeafT, unknown>; export declare function isPushAction(action: LSA): action is ArrayActions<'push', LeafT, unknown>; export {};