/// <reference path="../../typings/lodash/lodash.d.ts" />
/// <reference path="../../typings/node-mysql-wrapper/node-mysql-wrapper.d.ts" />
import { default as Handler, onAcknowledgementType } from "./Handler";
import { Subscription, SubscriptionsDictionary, ProcedureCursor } from "./LiveStore";
export default class Dispatcher {
    db: NodeMysqlWrapper.Database;
    handler: Handler;
    constructor(handler: Handler, db: NodeMysqlWrapper.Database);
    subscriptions: SubscriptionsDictionary;
    emitSubscriptions(subscriptions: Subscription[], callbackClient: onAcknowledgementType): void;
    publishFind(subscription: Subscription, callbackClient?: onAcknowledgementType): void;
    publishProcedure(subscription: Subscription, callbackClient?: onAcknowledgementType): void;
    executeProcedureCursor(cursor: ProcedureCursor, callback: (colsAndItems: {
        [collectionName: string]: any[];
    }) => void): void;
    emitInsertObject(socketId: string | SocketIO.Socket, collectionName: string, item: any): void;
    emitUpdateObject(socketId: string | SocketIO.Socket, collectionName: string, newItem: any, selector: any): void;
    emitRemoveObject(socketId: string | SocketIO.Socket, collectionName: string, selector: any): void;
}
