import { IMessageDeduper, IOutputSink, IState, IStateProvider, IStateType, IStoredMessage } from "@walmartlabs/cookie-cutter-core"; import { SpanContext } from "opentracing"; import { IBlobStorageConfiguration, ICosmosConfiguration } from ".."; export interface ISnapshotProvider { get(spanContext: SpanContext, key: string, atSn?: number): Promise<[number, TSnapshot]>; } export interface IBlobStorageSnapshotOutputSinkConfiguration { readonly frequency?: number; } export declare function cosmosState, TSnapshot>(configuration: ICosmosConfiguration, TState: IStateType, aggregator: any, snapshotProvider?: ISnapshotProvider): IStateProvider; export declare function cosmosSink(configuration: ICosmosConfiguration): IOutputSink; export declare function blobStorageSnapshotSink(configuration: IBlobStorageConfiguration & IBlobStorageSnapshotOutputSinkConfiguration): IOutputSink; export declare function blobStorageSnapshotProvider(configuration: IBlobStorageConfiguration): ISnapshotProvider; export declare function cosmosDeduper(configuration: ICosmosConfiguration): IMessageDeduper;