import { ILogger } from '../../../logger'; import { StreamService } from '../../index'; import { PublishMessageConfig, StreamConfig, StreamMessage, StreamStats } from '../../../../types/stream'; import { KeyStoreParams, StringAnyType } from '../../../../types'; import { NatsJetStreamType, NatsJetStreamManager as NatsJetStreamManagerType, NatsPubAckType, NatsClientType } from '../../../../types/nats'; import { KeyType } from '../../../../modules/key'; import { ProviderClient, ProviderTransaction } from '../../../../types/provider'; declare class NatsStreamService extends StreamService { jetstream: NatsJetStreamType; jsm: NatsJetStreamManagerType; constructor(streamClient: NatsClientType, storeClient: ProviderClient, config?: StreamConfig); init(namespace: string, appId: string, logger: ILogger): Promise; mintKey(type: KeyType, params: KeyStoreParams): string; transact(): ProviderTransaction; createStream(streamName: string): Promise; deleteStream(streamName: string): Promise; createConsumerGroup(streamName: string, groupName: string): Promise; deleteConsumerGroup(streamName: string, groupName: string): Promise; publishMessages(streamName: string, messages: string[], options?: PublishMessageConfig): Promise; consumeMessages(streamName: string, groupName: string, consumerName: string, options?: { batchSize?: number; blockTimeout?: number; autoAck?: boolean; }): Promise; ackAndDelete(streamName: string, groupName: string, messageIds: string[]): Promise; acknowledgeMessages(streamName: string, groupName: string, messageIds: string[], options?: StringAnyType): Promise; deleteMessages(streamName: string, groupName: string, messageIds: string[], options?: StringAnyType): Promise; retryMessages(streamName: string, groupName: string, options?: { consumerName?: string; minIdleTime?: number; messageIds?: string[]; delay?: number; maxRetries?: number; limit?: number; }): Promise; isScout(): boolean; getStreamStats(streamName: string): Promise; getStreamDepth(streamName: string): Promise; getStreamDepths(streamNames: { stream: string; }[]): Promise<{ stream: string; depth: number; }[]>; trimStream(streamName: string, options: { maxLen?: number; maxAge?: number; exactLimit?: boolean; }): Promise; getProviderSpecificFeatures(): { supportsBatching: boolean; supportsDeadLetterQueue: boolean; supportsOrdering: boolean; supportsTrimming: boolean; supportsRetry: boolean; supportsNotifications: boolean; supportsParallelProcessing: boolean; maxMessageSize: number; maxBatchSize: number; }; } export { NatsStreamService };