import {
  Type,
  PropertyKeyType,
} from '@loafer/core';

import {
  Decorator,
  DecoratorFactory,
} from '@loafer/decorator';

export interface RPCSubscriberDecoratorAttribute {
  method: string;
}

export class RPCSubscriberDecorator extends Decorator<RPCSubscriberDecoratorAttribute> {
  public constructor(config: RPCSubscriberDecoratorAttribute) {
    super(config);
  }

  public methodDecorator = <T>(target: Object, propertyKey: PropertyKeyType,
                                descriptor: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> | void => {
  }

}

export const RPCSubscriber = DecoratorFactory.create<RPCSubscriberDecoratorAttribute>(RPCSubscriberDecorator);
