import * as Component from './Component'; import * as RpcAble from './RpcAble'; import * as CommandAble from './CommandAble'; import * as StateAble from './StateAble'; import { Query } from './Query'; import { Reply } from './Reply'; import { State } from './State'; import { Typer } from 'cqes-type'; export interface Constructor { new (...a: Array): T; } export declare type handler = (query: Query) => Promise; export interface props extends Component.props, RpcAble.props, CommandAble.props, StateAble.props { } export declare class Handlers extends Component.Component { protected rpcBuses: RpcAble.Buses; protected queryTypes: RpcAble.Types; protected requestTypes: RpcAble.Types; protected query: (target: Typer, data: any, meta?: any) => RpcAble.EventEmitter; protected request: (target: Typer, data: any, meta?: any) => RpcAble.EventEmitter; protected commandBuses: CommandAble.Buses; protected commandTypes: CommandAble.Types; protected command: (target: Typer, streamId: string, data: any, meta?: any) => CommandAble.EventEmitter; protected getCommandTyper: (context: string, category: string, order: string) => Typer; protected repositories: StateAble.Repositories; protected get: (type: Constructor, streamId: string, minRevision?: number) => Promise>; constructor(props: props); start(): Promise; stop(): Promise; }