import * as Component from './Component'; import * as Query from './QueryHandlers'; import * as Update from './UpdateHandlers'; import { EventBus } from './EventBus'; import { EventHandling } from './EventBus'; import { QueryBus } from './QueryBus'; import { Event as E } from './Event'; import { Query as Q } from './Query'; import { Reply as R } from './Reply'; export { Query, Update }; export interface EventBuses { [name: string]: EventBus; } export interface Subscription { abort: () => Promise; } export interface props extends Component.props { eventBuses?: EventBuses; updateHandlers?: Update.Handlers; queryBus?: QueryBus; queryHandlers?: Query.Handlers; } export declare class View extends Component.Component { protected eventBuses: EventBuses; protected updateHandlers?: Update.Handlers; protected queryBus: QueryBus; protected queryHandlers?: Query.Handlers; protected subscriptions: Array; constructor(props: props); start(): Promise; protected getUpdateHandler(event: E): Update.handler; protected handleUpdateEvent(event: E): Promise; protected getQueryHandler(query: Q): Query.handler; protected handleViewQuery(query: Q): Promise; stop(): Promise; }