import Base from '../base';
import Session from '../common/service/session/session';
import ConnectionService from '../common/service/connectionService';
import { IBlackListFunction, IConnectorComponentOptions, IConnector, IConnectorSocket, IHandlerMsg, IReceiveId, IMsgRsp, IDecoder, IEncoder, IComponent, IScheduleOpts, IRoute, TransformRsp } from '..';
import ServerComponent from './server';
import SessionComponent from './session';
import Application from '../application';
export default class ConnectorComponent extends Base implements IComponent {
    server: ServerComponent;
    session: SessionComponent;
    connection: ConnectionService;
    connector: IConnector;
    decode?: IDecoder;
    encode?: IEncoder;
    transformRsp?: TransformRsp;
    useHostFilter?: Boolean;
    blacklistFun?: IBlackListFunction;
    forwardMsg?: Boolean;
    useDict: boolean;
    useProtobuf: boolean;
    blacklist: string[];
    constructor(app: Application, opts: IConnectorComponentOptions);
    start(): void;
    afterStart(): void;
    private bindEvents;
    /**
     * 处理消息事件
     * @param session
     * @param msg
     * @return {Promise<*>}
     */
    handleMessage(session: Session, msg: IHandlerMsg): Promise<any>;
    /**
     * 获取当前连接的session
     * @param socket
     * @return {*}
     */
    getSession(socket: IConnectorSocket): Session;
    send(route: IRoute, msgRsp: IMsgRsp, receiveIds: IReceiveId[], opts: IScheduleOpts): void;
    private hostFilter;
    private doSend;
    private getConnector;
    private getDefaultConnector;
    private checkServerType;
    private onSessionClose;
}
