import { Paths } from '../types/Paths'; import { ValueType } from 'b-pl-tree'; import { TraverseCondition } from '../types/TraverseCondition'; import { IndexDef } from '../types/IndexDef'; import { Item } from '../types/Item'; import { ISerializedCollectionConfig } from './ICollectionConfig'; export interface IDataCollection { get config(): ISerializedCollectionConfig; listIndexes(name: string): Array<{ name: string; key: { [key: string]: any; }; }>; dropIndex(name: string): any; createIndex(name: string, config: IndexDef): void; ttl?: number; name: string; root: string; reset(): Promise; load(name?: string): Promise; persist(name?: string): Promise; push(item: T): Promise; create(item: T): Promise; save(update: T): Promise; first(): Promise; last(): Promise; oldest(): Promise; latest(): Promise; lowest(key: Paths): Promise; greatest(key: Paths): Promise; find(condition: TraverseCondition): Promise>; findFirst(condition: TraverseCondition): Promise; findLast(condition: TraverseCondition): Promise; findBy(key: Paths, id: ValueType): Promise>; findFirstBy(key: Paths, id: ValueType): Promise; findLastBy(key: Paths, id: ValueType): Promise; findById(id: ValueType): Promise; update(condition: TraverseCondition, update: Partial): Promise>; updateFirst(condition: TraverseCondition, update: Partial): Promise; updateLast(condition: TraverseCondition, update: Partial): Promise; updateWithId(id: ValueType, update: Partial): Promise; removeWithId(id: ValueType): Promise; remove(condition: TraverseCondition): Promise>; removeFirst(condition: TraverseCondition): Promise; removeLast(condition: TraverseCondition): Promise; }