import type { RelationshipMetadata } from "./stores/relationship/schema.js"; import Model from "./model.js"; export default class HasManyArray extends Array { static get [Symbol.species](): ArrayConstructor; static of(..._input: Model[]): HasManyArray; belongsTo: Model; private _RelationshipClass; private _relationshipMetadata; private _spliceCallWhenSettingNull; get metadata(): RelationshipMetadata | { RelationshipClass: typeof Model; relationshipName: any; relationshipType: any; foreignKeyColumnName: any; SourceClass: any; reverseRelationshipName: any; reverseRelationshipType: any; reverseRelationshipForeignKeyColumnName: any; }; get firstObject(): any; get lastObject(): any; constructor(array?: Array | Set, belongsTo?: Model, metadata?: RelationshipMetadata); toArray(): any[]; toJSON(): any[]; reload(): any; concat(_otherHasManyArrays: Model[] | HasManyArray): Array; fill(value: void | Model, start?: number, end?: number): this; pop(): Model | undefined; push(model: Model): number; shift(): Model | undefined; splice(startIndex: number, deleteCount?: number, ..._items: Model[]): Model[]; unshift(..._models: Model[]): number; add(param: Model | Model[]): this; replace(existingReference: Model | Model[], targetToReplace: Model | Model[]): this; delete(param: Model | Model[]): boolean; clear(): this; insertAt(index: number, input: Model | Model[]): this; deleteAt(index: number, amount?: number): this; filterBy(key: string, value: any): this; uniqBy(key: string): this; sortBy(_key: string): this; any(predicate: any): boolean; mapBy(key: string): Model[]; objectsAt(indexes: number[]): Model[]; findBy(key: string, value: any): Model | void; getProperties(keys: string[]): Array; isAny(key: string, value: any): boolean; isEvery(key: string, value: any): boolean; }