import * as Component from '../Component'; import * as EventBus from '../EventBus'; import { eventHandler } from '../EventBus'; import { EventHandling } from '../EventBus'; import { Event } from '../Event'; import * as MySQL from 'cqes-mysql'; import * as redis from 'redis'; export interface props extends Component.props { originContext?: string; host?: string; user?: string; password?: string; database?: string; MySQL?: { url: string; } & MySQL.props; Redis?: redis.ClientOpts; } export declare class Subscription implements EventBus.Subscription { abort: (err?: any) => Promise; protected handler: eventHandler; protected queue: Array; protected draining: boolean; constructor(handler: eventHandler, abort: (err?: any) => Promise); append(events: Array): void; drain(): void; } declare type Filter = { [name: string]: string; }; declare type Begin = { [name: string]: number; }; export declare class Transport extends Component.Component implements EventBus.Transport { protected mysql: MySQL.MySQL; protected redis: redis.RedisClient; protected originContext: string; constructor(props: props); start(): Promise; save(events: Array): Promise; readFrom(filter: Filter, begin: Begin, handler: eventHandler): Promise; readAllFrom(position: number, handler: eventHandler): Promise; readCategoryFrom(category: string, position: number, handler: eventHandler): Promise; readStreamFrom(category: string, streamId: string, number: number, handler: eventHandler): Promise; readStreamLast(category: string, id: string, count: number): Promise>; subscribe(category: string, handler: eventHandler): Promise; psubscribe(id: string, category: string, handler: eventHandler): Promise; protected getPSubscriptionPosition(subscriptionId: string): Promise; protected getLastCategoryPosition(category: string): Promise; protected upsertPSubscriptionPosition(subscriptionId: string, position: number): Promise; stop(): Promise; } export {};