import { Model } from './Model'; import { ModelFilter } from './Filter'; export declare abstract class ModelCollection> extends Array { private __meta; private __removed; private static __modelsCached; private static __modelsRemoved; getMeta(key: string): any; setMeta(key: string, value: any): void; toRaw(includeRelations?: boolean): any[]; toJson(includeRelations?: boolean): string; toArray(): T[]; static getModelClassName(modelClass: any): any; getModelClassName(modelClass?: any): any; abstract getModelClass(): { new (): T; }; save(options?: any): Promise; saveWith(withRelations: any): Promise; delete(): Promise; static getModelById(modelClass: Function, id: any, createOnDemand?: boolean): any; private hydrateRaw(rawModels, modelClass?); static hydrateRaw(rawModels: any[], modelClass: any): any; findByMethod(method: string, params?: any): Promise; saveByMethod(method: string, params?: any): Promise; findBy(filter?: ModelFilter): Promise; getBy(filter?: ModelFilter): void; clear(): void; add(model: T, index?: number): number; private removeByIndex(index); private removeByModel(model); remove(model: T): number; remove(index: number): T; }