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