import * as Component from './Component'; import * as QueryAble from './QueryAble'; import * as CommandAble from './CommandAble'; import * as StateAble from './StateAble'; import { Event } from './Event'; import { State } from './State'; import { Typer } from 'cqes-type'; export declare type handler = (event: Event) => Promise; export declare function getset(target: Object, key: string, descriptor: PropertyDescriptor): PropertyDescriptor; export interface props extends Component.props, QueryAble.props, CommandAble.props, StateAble.props { } export declare class Handlers extends Component.Component { protected queryBuses: QueryAble.Buses; protected queryTypes: QueryAble.Types; protected query: (target: string, data: any, meta?: any) => QueryAble.EventEmitter; protected getQueryTyper: (context: string, view: string, method: string) => Typer; protected commandBuses: CommandAble.Buses; protected commandTypes: CommandAble.Types; protected command: (target: string, streamId: string, data: any, meta?: any) => CommandAble.EventEmitter; protected getCommandTyper: (context: string, category: string, order: string) => Typer; protected repositories: StateAble.Repositories; protected get: (target: { new (...a: Array): X; }, streamId: string) => Promise>; constructor(props: props); start(): Promise; stop(): Promise; }