import { IMetadataProvider } from '@memberjunction/core'; import { MJListEntity, MJListCategoryEntity } from '@memberjunction/core-entities'; import { Observable } from 'rxjs'; import { ListItemViewModel, BatchOperationResult, CreateListConfig } from '../models/list-management.models'; import * as i0 from "@angular/core"; /** * Service for managing list operations including data loading, caching, * and batch add/remove operations. * * Multi-provider note: callers under a non-default provider should set * `service.Provider = component.ProviderToUse` before invoking any methods. */ export declare class ListManagementService { private readonly CACHE_TTL_MS; private listCache; private categoryCache; private membershipCache; private loadingSubject; loading$: Observable; private _provider; get Provider(): IMetadataProvider; set Provider(value: IMetadataProvider | null); constructor(); /** * Get lists for a specific entity, with optional caching */ getListsForEntity(entityId: string, userId?: string, forceRefresh?: boolean): Promise; /** * Get all list categories */ getListCategories(forceRefresh?: boolean): Promise; /** * Get membership information for a set of records * Returns a Map where key is listId and value is array of recordIds that are members */ getRecordMembership(entityId: string, recordIds: string[]): Promise>; /** * Get lists that contain a specific record */ getListsForRecord(entityId: string, recordId: string): Promise; /** * Get item count for a list */ getListItemCount(listId: string): Promise; /** * Build view models for lists with membership information */ buildListViewModels(lists: MJListEntity[], recordIds: string[], membership: Map): Promise; /** * Add records to one or more lists */ addRecordsToLists(listIds: string[], recordIds: string[], skipDuplicates?: boolean): Promise; /** * Remove records from one or more lists */ removeRecordsFromLists(listIds: string[], recordIds: string[]): Promise; /** * Create a new list */ createList(config: CreateListConfig): Promise; /** * Check if a cache entry is still valid */ private isCacheValid; /** * Invalidate cache for a specific entity or all caches */ invalidateCache(entityId?: string): void; /** * Invalidate list cache for a specific entity */ private invalidateListCache; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } //# sourceMappingURL=list-management.service.d.ts.map