import Base from '../../base';
import { BackendSession } from './session/backendSession';
import { FRONTEND_ID, IComponent, IFrontendSessionExport, IObject, SID, UID } from '../..';
export default class BackendSessionService extends Base implements IComponent {
    create(session: IFrontendSessionExport): BackendSession;
    get(frontendId: FRONTEND_ID, sid: SID): Promise<BackendSession>;
    /**
     * Get backend sessions by frontend server id and user id.
     * @param  {String}   frontendId frontend server id that session attached
     * @param  {String}   uid        user id binded with the session
     */
    getByUid(frontendId: FRONTEND_ID, uid: UID): Promise<any>;
    /**
     * Kick a session by session id.
     * @param  {String}   frontendId cooperating frontend server id
     * @param  {Number}   sid        session id
     * @param  {String}   reason
     */
    kickBySid(frontendId: FRONTEND_ID, sid: SID, reason?: string): Promise<any>;
    kickByUid(frontendId: FRONTEND_ID, uid: UID, reason?: string): Promise<any>;
    bind(frontendId: FRONTEND_ID, sid: SID, uid: UID): Promise<any>;
    unbind(frontendId: FRONTEND_ID, sid: SID, uid: UID): Promise<any>;
    push(frontendId: FRONTEND_ID, sid: SID, key: string, value: string): Promise<any>;
    pushAll(frontendId: FRONTEND_ID, sid: SID, settings: IObject): Promise<any>;
    private rpc;
    private createBackendSession;
}
