import { Event } from '@skyway-sdk/common';
import model from '@skyway-sdk/model';
import { SkyWayChannel } from '../../channel';
import { SkyWayContext } from '../../context';
import { LocalPersonImpl } from '../../member/localPerson';
import { RemoteMemberImplInterface } from '../../member/remoteMember';
/**@internal */
export declare abstract class SkyWayPlugin {
    subtype: string;
    /**@internal */
    _context?: SkyWayContext;
    /**@internal */
    _onContextAttached: Event<SkyWayContext>;
    /**@internal */
    _attachContext(context: SkyWayContext): void;
    /**@internal */
    _whenCreateLocalPerson?: (member: LocalPersonImpl) => Promise<void>;
    /**@internal */
    _whenDisposeLocalPerson?: (member: LocalPersonImpl) => Promise<void>;
    /**@internal */
    abstract _createRemoteMember(channel: SkyWayChannel, memberDto: model.Member): RemoteMemberImplInterface;
}
//# sourceMappingURL=plugin.d.ts.map