/// <reference path="../../typings/node-mysql-wrapper/node-mysql-wrapper.d.ts" />
/// <reference path="../../typings/socket.io/socket.io.d.ts" />
import Handler from "./Handler";
import { CallbackSubscriptionType, Cursor, ProcedureCursor } from "./LiveStore";
import { MethodsDictionary } from "./MethodStore";
import { Collection } from "./Collection";
export default class MysqlLiveServer {
    static LiveServerCount: number;
    static LiveServerSocketNamespace: string;
    handler: Handler;
    constructor(db: NodeMysqlWrapper.Database, httpServer: any);
    constructor(db: NodeMysqlWrapper.Database, io: SocketIO.Server);
    constructor(dbString: string, io: SocketIO.Server);
    constructor(dbString: string, httpServer: any);
    Collection(collectionName: string, tableName: string, isSingleItem?: boolean): Collection;
    Object(objectName: string, tableName: string): Collection;
    publish(publicationName: string, cbOrCursorOrCollection: Collection[]): void;
    publish(publicationName: string, cbOrCursorOrCollection: Cursor[]): void;
    publish(publicationName: string, cbOrCursorOrCollection: Collection): void;
    publish(publicationName: string, cbOrCursorOrCollection: Cursor): void;
    publish(publicationName: string, cbOrCursorOrCollection: CallbackSubscriptionType): void;
    insecure(allowAllByDefault: boolean): void;
    methods(_methods: MethodsDictionary): void;
    getPassport(socket: SocketIO.Socket): any;
    getSocket(socketId: string): SocketIO.Socket;
    setPassport(socket: SocketIO.Socket, passportObj: any): any;
    call(methodName: string, ...args: any[]): any;
    table<T>(tableName: string): NodeMysqlWrapper.Table<T>;
    criteriaFor<T>(tableName: string): NodeMysqlWrapper.CriteriaBuilder<T>;
    procedure(procedureName: string, ...params: any[]): ProcedureCursor;
    engine: SocketIO.Server;
    database: NodeMysqlWrapper.Database;
}
