import { CID } from 'multiformats'; import { type Applog, ApplogForInsert, CidString } from '../applog/datom-types.ts'; import type { SubscribableArray, ArrayEvent } from '../query/subscribable.ts'; import { isArrayInitEvent } from '../query/subscribable.ts'; import { ArrayOrSingle } from '../types/typescript-utils.ts'; export type ThreadEvent = ArrayEvent; /** @deprecated Use isArrayInitEvent from @wovin/core/query */ export declare const isInitEvent: typeof isArrayInitEvent; export type ApplogsOrThread = Thread | readonly Applog[]; export declare abstract class Thread implements SubscribableArray { readonly name: string; protected _applogs: Applog[]; readonly filters: readonly string[]; readonly parents: Thread[] | readonly Thread[] | null; protected _derivedSubscribers: ((event: ThreadEvent) => void)[]; protected _subscribers: ((event: ThreadEvent) => void)[]; /** Monotonic counter incremented on every mutation. Used by memoizedFn to invalidate caches. */ _version: number; constructor(name: string, /* = null */ parents: ArrayOrSingle | readonly Thread[] | null, filters: readonly string[], _applogs?: Applog[]); get readOnly(): any; insert(appLogsToInsert: ArrayOrSingle): any; insertRaw(appLogsToInsert: readonly Applog[]): any; subscribe(callback: (event: ThreadEvent) => void, type?: 'derived' | 'reaction'): () => void; protected notifySubscribers(event: ThreadEvent): void; get items(): readonly Applog[]; dispose(): void; get applogs(): readonly Applog[]; get applogsCids(): readonly CidString[]; get applogsCidSet(): ReadonlySet; map(fn: (applog: Applog) => R): R[]; get findLast(): { (predicate: (value: Applog, index: number, array: readonly Applog[]) => value is S, thisArg?: any): S; (predicate: (value: Applog, index: number, array: readonly Applog[]) => unknown, thisArg?: any): Applog; }; get findFirst(): { (predicate: (value: Applog, index: number, obj: readonly Applog[]) => value is S, thisArg?: any): S; (predicate: (value: Applog, index: number, obj: readonly Applog[]) => unknown, thisArg?: any): Applog; }; get firstLog(): Applog; get latestLog(): Applog; hasApplog(applog: Applog, byRef: boolean): boolean; hasApplogCid(cid: CID | CidString): boolean; get applogsByCid(): Map; getApplog(cid: CID | CidString): Applog; hasApplogWithDiffTs(applog: ApplogForInsert): Applog; get isEmpty(): boolean; get size(): number; get length(): number; get untrackedSize(): number; get nameAndSizeUntracked(): string; get prettyName(): string; get hasParents(): boolean; } export declare const getLogsFromThread: (logsOrThread: ApplogsOrThread) => readonly Applog[]; export declare class StaticThread extends Thread { static fromArray(applogs: Applog[], name?: string): StaticThread; constructor(name: string, /* = null */ parents: ArrayOrSingle | readonly Thread[] | null, filters: readonly string[], _applogs: Applog[]); get readOnly(): boolean; } //# sourceMappingURL=basic.d.ts.map