import { Observable } from 'rxjs'; import { DataCache, DataCompartmentOptions, ProjectionContext, DataCacheScenario, DataCatalog, DataCatalogModule } from '..'; import { DataStoreToken } from '../DataStoreToken'; import { IServiceModule } from '@aesop-fables/containr'; export declare const TestTokens: { account: DataStoreToken; cache: DataStoreToken; }; export declare function createAccountDataCache(): DataCache; export interface InvestmentInfoRest { id: number; title: string; balance: number; } export interface InvestmentInfo { id: number; name: string; balance: number; } export interface AccountInfoRest { id: number; title: string; investments: InvestmentInfoRest[]; } export interface AccountInfo { id: number; name: string; investments: InvestmentInfo[]; } export interface AccountCompartments { plans: DataCompartmentOptions; } export declare const CompartmentKeys: { plans: "plans"; }; export declare function mapInvestmentInfoRestToInvestmentInfo(data: InvestmentInfoRest): InvestmentInfo; export declare function mapAccountInfoRestToAccountInfo(data: AccountInfoRest): AccountInfo; export declare const AccountCompartmentKey = "test-accounts"; export declare class AccountProjections { readonly cache: DataCache; constructor(context: ProjectionContext); get accounts$(): Observable; } export declare class AccountSummaryProjection { private readonly accounts; constructor(accounts: AccountProjections); get totalBalance$(): Observable; } export declare function createAccountStorage(policy: AccountCompartments): [DataCatalog, DataCache]; export declare function createOperationScenario(): DataCacheScenario & { accounts: AccountInfoRest[]; }; export declare function useDataCache(modules?: DataCatalogModule[]): IServiceModule;