import { Record } from '../record'; export declare type Predicate = ((val: R, key?: number) => boolean) | Partial; export declare abstract class ArrayMixin { models: R[]; abstract get(modelOrId: string | Partial): R; map(mapFilter: (val: R, key?: number) => T, context?: any): T[]; each(fun: (val: R, key?: number) => any, context?: any): void; firstMatch(doWhile: (val: R, key?: number) => T): T; firstMatch(doWhile: (this: C, val: R, key?: number) => T, context: C): T; reduce(iteratee: (previousValue: R, currentValue: R, currentIndex?: number) => R): R; reduce(iteratee: (previousValue: T, currentValue: R, currentIndex?: number) => T, init?: any): T; slice(begin?: number, end?: number): R[]; indexOf(modelOrId: string | Partial): number; includes(idOrObj: string | Partial): boolean; filter(iteratee: Predicate, context?: any): R[]; find(iteratee: Predicate, context?: any): R; some(iteratee: Predicate, context?: any): boolean; forEach(iteratee: (val: R, key?: number) => void, context?: any): void; values(): IterableIterator; entries(): IterableIterator<[number, R]>; every(iteratee: Predicate, context?: any): boolean; pluck(key: K): R[K][]; first(): R; last(): R; at(a_index: number): R; }