/// import { IMessageEncoder, IRequireInitialization } from "@walmartlabs/cookie-cutter-core"; import { SpanContext } from "opentracing"; import * as es from "./event-sourced"; import * as ma from "./materialized"; import * as st from "./streaming"; export declare const EventSourced: typeof es; export declare const Materialized: typeof ma; export declare const Streaming: typeof st; export interface ICosmosConfiguration { readonly url: string; readonly key: string; readonly databaseId: string; readonly collectionId: string; readonly encoder: IMessageEncoder; } /** * When connecting to a blob, the BlobClient: * uses the connectionString (if provided) to connect, otherwise * uses the url (if provided) and account and key to connect, otherwise * uses the account and key to construct a standard url and connect */ export interface IBlobStorageConfiguration { readonly storageAccount?: string; readonly storageAccessKey?: string; readonly container: string; /** Ex: * `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1; * AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==; * BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1; * QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1; * TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;` */ readonly connectionString?: string; /** Ex: `https://account.blob.core.windows.net` * Deprecated: uses as a connection string */ readonly url?: string; } export interface ICosmosQuery { query: string; parameters?: { name: string; value: string | number | boolean; }[]; } export declare enum CosmosMetadata { TTL = "ttl" } export interface ICosmosQueryClient { query(spanContext: SpanContext, query: ICosmosQuery, collectionId?: string): Promise; } export declare function cosmosQueryClient(configuration: ICosmosConfiguration): ICosmosQueryClient; export interface IBlobClient extends IRequireInitialization { createContainerIfNotExists(context?: SpanContext): Promise; write(context: SpanContext, blobId: string, content: Buffer | string): Promise; readAsText(context: SpanContext, blobId: string): Promise; exists(context: SpanContext, blobId: string): Promise; deleteFolderIfExists(context: SpanContext, folderId: string): Promise; deleteBlobIfExists(context: SpanContext, blobId: string): Promise; listBlobs(context: SpanContext, prefix: string): AsyncIterableIterator; } export declare function createBlobClient(configuration: IBlobStorageConfiguration): IBlobClient;