import * as jspb from 'google-protobuf'

import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb'; // proto import: "google/protobuf/timestamp.proto"


export class Referral extends jspb.Message {
  getReferralId(): number;
  setReferralId(value: number): Referral;

  getReferrerId(): string;
  setReferrerId(value: string): Referral;

  getRefereeId(): string;
  setRefereeId(value: string): Referral;

  getCreatedAt(): google_protobuf_timestamp_pb.Timestamp | undefined;
  setCreatedAt(value?: google_protobuf_timestamp_pb.Timestamp): Referral;
  hasCreatedAt(): boolean;
  clearCreatedAt(): Referral;

  getUpdatedAt(): google_protobuf_timestamp_pb.Timestamp | undefined;
  setUpdatedAt(value?: google_protobuf_timestamp_pb.Timestamp): Referral;
  hasUpdatedAt(): boolean;
  clearUpdatedAt(): Referral;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): Referral.AsObject;
  static toObject(includeInstance: boolean, msg: Referral): Referral.AsObject;
  static serializeBinaryToWriter(message: Referral, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): Referral;
  static deserializeBinaryFromReader(message: Referral, reader: jspb.BinaryReader): Referral;
}

export namespace Referral {
  export type AsObject = {
    referralId: number,
    referrerId: string,
    refereeId: string,
    createdAt?: google_protobuf_timestamp_pb.Timestamp.AsObject,
    updatedAt?: google_protobuf_timestamp_pb.Timestamp.AsObject,
  }
}

export class UserReferrals extends jspb.Message {
  getUserId(): string;
  setUserId(value: string): UserReferrals;

  getTotalReferred(): number;
  setTotalReferred(value: number): UserReferrals;

  getCreatedAt(): google_protobuf_timestamp_pb.Timestamp | undefined;
  setCreatedAt(value?: google_protobuf_timestamp_pb.Timestamp): UserReferrals;
  hasCreatedAt(): boolean;
  clearCreatedAt(): UserReferrals;

  getUpdatedAt(): google_protobuf_timestamp_pb.Timestamp | undefined;
  setUpdatedAt(value?: google_protobuf_timestamp_pb.Timestamp): UserReferrals;
  hasUpdatedAt(): boolean;
  clearUpdatedAt(): UserReferrals;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): UserReferrals.AsObject;
  static toObject(includeInstance: boolean, msg: UserReferrals): UserReferrals.AsObject;
  static serializeBinaryToWriter(message: UserReferrals, writer: jspb.BinaryWriter): void;
  static deserializeBinary(bytes: Uint8Array): UserReferrals;
  static deserializeBinaryFromReader(message: UserReferrals, reader: jspb.BinaryReader): UserReferrals;
}

export namespace UserReferrals {
  export type AsObject = {
    userId: string,
    totalReferred: number,
    createdAt?: google_protobuf_timestamp_pb.Timestamp.AsObject,
    updatedAt?: google_protobuf_timestamp_pb.Timestamp.AsObject,
  }
}

