import { Emitter } from "@welshman/lib"; import { Filter, TrustedEvent } from "@welshman/util"; export declare const LOCAL_RELAY_URL = "local://welshman.relay/"; export declare let repositorySingleton: Repository; export type RepositoryUpdate = { added: TrustedEvent[]; removed: Set; }; export declare const mergeRepositoryUpdates: (updates: RepositoryUpdate[]) => RepositoryUpdate; export declare class Repository extends Emitter { eventsById: Map; eventsByAddress: Map; eventsByTag: Map; eventsByDay: Map; eventsByAuthor: Map; eventsByKind: Map; deletes: Map; expired: Map; static get(): Repository; constructor(); dump: () => TrustedEvent[]; load: (events: TrustedEvent[]) => void; getEvent: (idOrAddress: string) => TrustedEvent | undefined; hasEvent: (event: TrustedEvent) => boolean | undefined; removeEvent: (idOrAddress: string) => void; query: (filters: Filter[], { includeDeleted, includeExpired, shouldSort }?: { includeDeleted?: boolean | undefined; includeExpired?: boolean | undefined; shouldSort?: boolean | undefined; }) => TrustedEvent[]; publish: (event: TrustedEvent, { shouldNotify }?: { shouldNotify?: boolean | undefined; }) => boolean; _isDeleted: (key: string, event: TrustedEvent) => boolean; isDeletedByAddress: (event: TrustedEvent) => boolean; isDeletedById: (event: TrustedEvent) => boolean; isDeleted: (event: TrustedEvent) => boolean; isExpired: (event: TrustedEvent) => boolean; _sortEvents: (shouldSort: boolean, events: TrustedEvent[]) => TrustedEvent[]; _updateIndex: (m: Map, k: K, add?: TrustedEvent, remove?: TrustedEvent) => void; _getEvents: (ids: Iterable) => TrustedEvent[]; _applyIdsFilter: (filter: Filter) => { filter: Filter; ids: Set; } | undefined; _applyAuthorsFilter: (filter: Filter) => { filter: Filter; ids: Set; } | undefined; _applyTagsFilter: (filter: Filter) => { filter: Filter; ids: Set; } | undefined; _applyKindsFilter: (filter: Filter) => { filter: Filter; ids: Set; } | undefined; _applyDaysFilter: (filter: Filter) => { filter: Filter; ids: Set; } | undefined; _applyAnyFilter: (filter: Filter) => { filter: Filter; ids: Set; } | undefined; } //# sourceMappingURL=repository.d.ts.map