import { KeyStoreParams, KeyType } from '../../modules/key'; import { ILogger } from '../logger'; import { SubscriptionCallback } from '../../types/quorum'; import { ProviderClient, ProviderTransaction } from '../../types/provider'; declare abstract class SubService { protected eventClient: ClientProvider; protected storeClient: ProviderClient; protected namespace: string; protected engineId: string; protected logger: ILogger; protected appId: string; constructor(eventClient: ClientProvider, storeClient: ProviderClient); abstract init(namespace: string, appId: string, engineId: string, logger: ILogger): Promise; abstract transact(): ProviderTransaction; abstract mintKey(type: KeyType, params: KeyStoreParams): string; abstract subscribe(keyType: KeyType.QUORUM, callback: SubscriptionCallback, appId: string, topic?: string): Promise; abstract unsubscribe(keyType: KeyType.QUORUM, appId: string, topic?: string): Promise; abstract psubscribe(keyType: KeyType.QUORUM, callback: SubscriptionCallback, appId: string, topic?: string): Promise; abstract punsubscribe(keyType: KeyType.QUORUM, appId: string, topic?: string): Promise; abstract publish(keyType: KeyType, message: Record, appId: string, topic?: string, transaction?: ProviderTransaction): Promise; } export { SubService };