import * as $protobuf from 'protobufjs';
/** Properties of a MessageHead. */
export interface IMessageHead {
    /** MessageHead FunCode */
    FunCode?: number | null;

    /** MessageHead RequestID */
    RequestID?: number | null;

    /** MessageHead AccountID */
    AccountID?: number | Long | null;

    /** MessageHead AccessID */
    AccessID?: number | null;

    /** MessageHead ClientTime */
    ClientTime?: number | Long | null;

    /** MessageHead GoodsID */
    GoodsID?: number | null;

    /** MessageHead UUID */
    UUID?: string | null;

    /** MessageHead MarketID */
    MarketID?: number | null;

    /** MessageHead UserID */
    UserID?: number | null;

    /** MessageHead ResponseTopic */
    ResponseTopic?: string | null;

    /** MessageHead AccountID2 */
    AccountID2?: number | Long | null;
}

/** Represents a MessageHead. */
export class MessageHead implements IMessageHead {
    /**
     * Constructs a new MessageHead.
     * @param [properties] Properties to set
     */
    constructor(properties?: IMessageHead);

    /** MessageHead FunCode. */
    public FunCode: number;

    /** MessageHead RequestID. */
    public RequestID: number;

    /** MessageHead AccountID. */
    public AccountID: number | Long;

    /** MessageHead AccessID. */
    public AccessID: number;

    /** MessageHead ClientTime. */
    public ClientTime: number | Long;

    /** MessageHead GoodsID. */
    public GoodsID: number;

    /** MessageHead UUID. */
    public UUID: string;

    /** MessageHead MarketID. */
    public MarketID: number;

    /** MessageHead UserID. */
    public UserID: number;

    /** MessageHead ResponseTopic. */
    public ResponseTopic: string;

    /** MessageHead AccountID2. */
    public AccountID2: number | Long;

    /**
     * Creates a new MessageHead instance using the specified properties.
     * @param [properties] Properties to set
     * @returns MessageHead instance
     */
    public static create(properties?: IMessageHead): MessageHead;

    /**
     * Encodes the specified MessageHead message. Does not implicitly {@link MessageHead.verify|verify} messages.
     * @param message MessageHead message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: IMessageHead, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified MessageHead message, length delimited. Does not implicitly {@link MessageHead.verify|verify} messages.
     * @param message MessageHead message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: IMessageHead, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a MessageHead message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns MessageHead
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): MessageHead;

    /**
     * Decodes a MessageHead message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns MessageHead
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): MessageHead;

    /**
     * Verifies a MessageHead message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a MessageHead message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns MessageHead
     */
    public static fromObject(object: { [k: string]: any }): MessageHead;

    /**
     * Creates a plain object from a MessageHead message. Also converts values to other types if specified.
     * @param message MessageHead
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: MessageHead, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this MessageHead to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a QueryReqPageInfo. */
export interface IQueryReqPageInfo {
    /** QueryReqPageInfo PageNumber */
    PageNumber?: number | null;

    /** QueryReqPageInfo RecordPerPage */
    RecordPerPage?: number | null;

    /** QueryReqPageInfo QueryMark */
    QueryMark?: number | null;

    /** QueryReqPageInfo SortField */
    SortField?: string | null;

    /** QueryReqPageInfo SortOrder */
    SortOrder?: number | null;

    /** QueryReqPageInfo NeedTotalCount */
    NeedTotalCount?: number | null;
}

/** Represents a QueryReqPageInfo. */
export class QueryReqPageInfo implements IQueryReqPageInfo {
    /**
     * Constructs a new QueryReqPageInfo.
     * @param [properties] Properties to set
     */
    constructor(properties?: IQueryReqPageInfo);

    /** QueryReqPageInfo PageNumber. */
    public PageNumber: number;

    /** QueryReqPageInfo RecordPerPage. */
    public RecordPerPage: number;

    /** QueryReqPageInfo QueryMark. */
    public QueryMark: number;

    /** QueryReqPageInfo SortField. */
    public SortField: string;

    /** QueryReqPageInfo SortOrder. */
    public SortOrder: number;

    /** QueryReqPageInfo NeedTotalCount. */
    public NeedTotalCount: number;

    /**
     * Creates a new QueryReqPageInfo instance using the specified properties.
     * @param [properties] Properties to set
     * @returns QueryReqPageInfo instance
     */
    public static create(properties?: IQueryReqPageInfo): QueryReqPageInfo;

    /**
     * Encodes the specified QueryReqPageInfo message. Does not implicitly {@link QueryReqPageInfo.verify|verify} messages.
     * @param message QueryReqPageInfo message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: IQueryReqPageInfo, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified QueryReqPageInfo message, length delimited. Does not implicitly {@link QueryReqPageInfo.verify|verify} messages.
     * @param message QueryReqPageInfo message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: IQueryReqPageInfo, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a QueryReqPageInfo message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns QueryReqPageInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): QueryReqPageInfo;

    /**
     * Decodes a QueryReqPageInfo message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns QueryReqPageInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): QueryReqPageInfo;

    /**
     * Verifies a QueryReqPageInfo message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a QueryReqPageInfo message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns QueryReqPageInfo
     */
    public static fromObject(object: { [k: string]: any }): QueryReqPageInfo;

    /**
     * Creates a plain object from a QueryReqPageInfo message. Also converts values to other types if specified.
     * @param message QueryReqPageInfo
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: QueryReqPageInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this QueryReqPageInfo to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a QueryRspPageInfo. */
export interface IQueryRspPageInfo {
    /** QueryRspPageInfo PageNumber */
    PageNumber?: number | null;

    /** QueryRspPageInfo RecordPerPage */
    RecordPerPage?: number | null;

    /** QueryRspPageInfo QueryMark */
    QueryMark?: number | null;

    /** QueryRspPageInfo SortField */
    SortField?: string | null;

    /** QueryRspPageInfo SortOrder */
    SortOrder?: number | null;

    /** QueryRspPageInfo RecordCount */
    RecordCount?: number | null;

    /** QueryRspPageInfo TotalCount */
    TotalCount?: number | null;
}

/** Represents a QueryRspPageInfo. */
export class QueryRspPageInfo implements IQueryRspPageInfo {
    /**
     * Constructs a new QueryRspPageInfo.
     * @param [properties] Properties to set
     */
    constructor(properties?: IQueryRspPageInfo);

    /** QueryRspPageInfo PageNumber. */
    public PageNumber: number;

    /** QueryRspPageInfo RecordPerPage. */
    public RecordPerPage: number;

    /** QueryRspPageInfo QueryMark. */
    public QueryMark: number;

    /** QueryRspPageInfo SortField. */
    public SortField: string;

    /** QueryRspPageInfo SortOrder. */
    public SortOrder: number;

    /** QueryRspPageInfo RecordCount. */
    public RecordCount: number;

    /** QueryRspPageInfo TotalCount. */
    public TotalCount: number;

    /**
     * Creates a new QueryRspPageInfo instance using the specified properties.
     * @param [properties] Properties to set
     * @returns QueryRspPageInfo instance
     */
    public static create(properties?: IQueryRspPageInfo): QueryRspPageInfo;

    /**
     * Encodes the specified QueryRspPageInfo message. Does not implicitly {@link QueryRspPageInfo.verify|verify} messages.
     * @param message QueryRspPageInfo message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: IQueryRspPageInfo, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified QueryRspPageInfo message, length delimited. Does not implicitly {@link QueryRspPageInfo.verify|verify} messages.
     * @param message QueryRspPageInfo message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: IQueryRspPageInfo, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a QueryRspPageInfo message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns QueryRspPageInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): QueryRspPageInfo;

    /**
     * Decodes a QueryRspPageInfo message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns QueryRspPageInfo
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): QueryRspPageInfo;

    /**
     * Verifies a QueryRspPageInfo message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a QueryRspPageInfo message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns QueryRspPageInfo
     */
    public static fromObject(object: { [k: string]: any }): QueryRspPageInfo;

    /**
     * Creates a plain object from a QueryRspPageInfo message. Also converts values to other types if specified.
     * @param message QueryRspPageInfo
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: QueryRspPageInfo, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this QueryRspPageInfo to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a CommonPackage. */
export interface ICommonPackage {
    /** CommonPackage Header */
    Header: IMessageHead;
}

/** Represents a CommonPackage. */
export class CommonPackage implements ICommonPackage {
    /**
     * Constructs a new CommonPackage.
     * @param [properties] Properties to set
     */
    constructor(properties?: ICommonPackage);

    /** CommonPackage Header. */
    public Header: IMessageHead;

    /**
     * Creates a new CommonPackage instance using the specified properties.
     * @param [properties] Properties to set
     * @returns CommonPackage instance
     */
    public static create(properties?: ICommonPackage): CommonPackage;

    /**
     * Encodes the specified CommonPackage message. Does not implicitly {@link CommonPackage.verify|verify} messages.
     * @param message CommonPackage message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: ICommonPackage, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified CommonPackage message, length delimited. Does not implicitly {@link CommonPackage.verify|verify} messages.
     * @param message CommonPackage message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: ICommonPackage, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a CommonPackage message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns CommonPackage
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): CommonPackage;

    /**
     * Decodes a CommonPackage message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns CommonPackage
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): CommonPackage;

    /**
     * Verifies a CommonPackage message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a CommonPackage message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns CommonPackage
     */
    public static fromObject(object: { [k: string]: any }): CommonPackage;

    /**
     * Creates a plain object from a CommonPackage message. Also converts values to other types if specified.
     * @param message CommonPackage
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: CommonPackage, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this CommonPackage to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a NotifyHead. */
export interface INotifyHead {
    /** NotifyHead NtfMode */
    NtfMode?: number | null;

    /** NotifyHead ExcludeAcctIDs */
    ExcludeAcctIDs?: number[] | null;

    /** NotifyHead ExchIDs */
    ExchIDs?: number[] | null;

    /** NotifyHead MemberIDs */
    MemberIDs?: number[] | null;

    /** NotifyHead AccountIDs */
    AccountIDs?: (number | Long)[] | null;
}

/** Represents a NotifyHead. */
export class NotifyHead implements INotifyHead {
    /**
     * Constructs a new NotifyHead.
     * @param [properties] Properties to set
     */
    constructor(properties?: INotifyHead);

    /** NotifyHead NtfMode. */
    public NtfMode: number;

    /** NotifyHead ExcludeAcctIDs. */
    public ExcludeAcctIDs: number[];

    /** NotifyHead ExchIDs. */
    public ExchIDs: number[];

    /** NotifyHead MemberIDs. */
    public MemberIDs: number[];

    /** NotifyHead AccountIDs. */
    public AccountIDs: (number | Long)[];

    /**
     * Creates a new NotifyHead instance using the specified properties.
     * @param [properties] Properties to set
     * @returns NotifyHead instance
     */
    public static create(properties?: INotifyHead): NotifyHead;

    /**
     * Encodes the specified NotifyHead message. Does not implicitly {@link NotifyHead.verify|verify} messages.
     * @param message NotifyHead message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: INotifyHead, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified NotifyHead message, length delimited. Does not implicitly {@link NotifyHead.verify|verify} messages.
     * @param message NotifyHead message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: INotifyHead, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a NotifyHead message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns NotifyHead
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): NotifyHead;

    /**
     * Decodes a NotifyHead message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns NotifyHead
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): NotifyHead;

    /**
     * Verifies a NotifyHead message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a NotifyHead message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns NotifyHead
     */
    public static fromObject(object: { [k: string]: any }): NotifyHead;

    /**
     * Creates a plain object from a NotifyHead message. Also converts values to other types if specified.
     * @param message NotifyHead
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: NotifyHead, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this NotifyHead to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a CommonNtf. */
export interface ICommonNtf {
    /** CommonNtf Header */
    Header?: IMessageHead | null;

    /** CommonNtf NtfHeader */
    NtfHeader?: INotifyHead | null;
}

/** Represents a CommonNtf. */
export class CommonNtf implements ICommonNtf {
    /**
     * Constructs a new CommonNtf.
     * @param [properties] Properties to set
     */
    constructor(properties?: ICommonNtf);

    /** CommonNtf Header. */
    public Header?: IMessageHead | null;

    /** CommonNtf NtfHeader. */
    public NtfHeader?: INotifyHead | null;

    /**
     * Creates a new CommonNtf instance using the specified properties.
     * @param [properties] Properties to set
     * @returns CommonNtf instance
     */
    public static create(properties?: ICommonNtf): CommonNtf;

    /**
     * Encodes the specified CommonNtf message. Does not implicitly {@link CommonNtf.verify|verify} messages.
     * @param message CommonNtf message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: ICommonNtf, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified CommonNtf message, length delimited. Does not implicitly {@link CommonNtf.verify|verify} messages.
     * @param message CommonNtf message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: ICommonNtf, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a CommonNtf message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns CommonNtf
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): CommonNtf;

    /**
     * Decodes a CommonNtf message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns CommonNtf
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): CommonNtf;

    /**
     * Verifies a CommonNtf message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a CommonNtf message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns CommonNtf
     */
    public static fromObject(object: { [k: string]: any }): CommonNtf;

    /**
     * Creates a plain object from a CommonNtf message. Also converts values to other types if specified.
     * @param message CommonNtf
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: CommonNtf, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this CommonNtf to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a LoginReq. */
export interface ILoginReq {
    /** LoginReq Header */
    Header?: IMessageHead | null;

    /** LoginReq LoginID */
    LoginID?: number | Long | null;

    /** LoginReq LoginPWD */
    LoginPWD?: string | null;

    /** LoginReq LoginType */
    LoginType?: number | null;

    /** LoginReq ClientType */
    ClientType?: number | null;

    /** LoginReq Version */
    Version?: string | null;

    /** LoginReq MobilePhone */
    MobilePhone?: string | null;

    /** LoginReq GUID */
    GUID?: string | null;

    /** LoginReq LoginIp */
    LoginIp?: string | null;

    /** LoginReq LoginPort */
    LoginPort?: number | null;

    /** LoginReq DeviceID */
    DeviceID?: string | null;

    /** LoginReq EnvironmentInfo */
    EnvironmentInfo?: string | null;

    /** LoginReq LoginCode */
    LoginCode?: string | null;
}

/** Represents a LoginReq. */
export class LoginReq implements ILoginReq {
    /**
     * Constructs a new LoginReq.
     * @param [properties] Properties to set
     */
    constructor(properties?: ILoginReq);

    /** LoginReq Header. */
    public Header?: IMessageHead | null;

    /** LoginReq LoginID. */
    public LoginID: number | Long;

    /** LoginReq LoginPWD. */
    public LoginPWD: string;

    /** LoginReq LoginType. */
    public LoginType: number;

    /** LoginReq ClientType. */
    public ClientType: number;

    /** LoginReq Version. */
    public Version: string;

    /** LoginReq MobilePhone. */
    public MobilePhone: string;

    /** LoginReq GUID. */
    public GUID: string;

    /** LoginReq LoginIp. */
    public LoginIp: string;

    /** LoginReq LoginPort. */
    public LoginPort: number;

    /** LoginReq DeviceID. */
    public DeviceID: string;

    /** LoginReq EnvironmentInfo. */
    public EnvironmentInfo: string;

    /** LoginReq LoginCode. */
    public LoginCode: string;

    /**
     * Creates a new LoginReq instance using the specified properties.
     * @param [properties] Properties to set
     * @returns LoginReq instance
     */
    public static create(properties?: ILoginReq): LoginReq;

    /**
     * Encodes the specified LoginReq message. Does not implicitly {@link LoginReq.verify|verify} messages.
     * @param message LoginReq message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: ILoginReq, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified LoginReq message, length delimited. Does not implicitly {@link LoginReq.verify|verify} messages.
     * @param message LoginReq message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: ILoginReq, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a LoginReq message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns LoginReq
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): LoginReq;

    /**
     * Decodes a LoginReq message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns LoginReq
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): LoginReq;

    /**
     * Verifies a LoginReq message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a LoginReq message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns LoginReq
     */
    public static fromObject(object: { [k: string]: any }): LoginReq;

    /**
     * Creates a plain object from a LoginReq message. Also converts values to other types if specified.
     * @param message LoginReq
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: LoginReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this LoginReq to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a LoginRsp. */
export interface ILoginRsp {
    /** LoginRsp Header */
    Header?: IMessageHead | null;

    /** LoginRsp RetCode */
    RetCode?: number | null;

    /** LoginRsp RetDesc */
    RetDesc?: string | null;

    /** LoginRsp LoginID */
    LoginID?: number | Long | null;

    /** LoginRsp LoginUserType */
    LoginUserType?: number | null;

    /** LoginRsp AccountStatus */
    AccountStatus?: number | null;

    /** LoginRsp UserID */
    UserID?: number | null;

    /** LoginRsp MemberUserID */
    MemberUserID?: number | null;

    /** LoginRsp AccountIDs */
    AccountIDs?: (number | Long)[] | null;

    /** LoginRsp Token */
    Token?: string | null;

    /** LoginRsp SystemTime */
    SystemTime?: number | Long | null;

    /** LoginRsp HasUpdatedPwd */
    HasUpdatedPwd?: number | null;

    /** LoginRsp PwdWrongCnt */
    PwdWrongCnt?: number | null;

    /** LoginRsp PwdWrongLockCnt */
    PwdWrongLockCnt?: number | null;

    /** LoginRsp LoginLockHourNum */
    LoginLockHourNum?: number | null;

    /** LoginRsp LoginCode */
    LoginCode?: string | null;
}

/** Represents a LoginRsp. */
export class LoginRsp implements ILoginRsp {
    /**
     * Constructs a new LoginRsp.
     * @param [properties] Properties to set
     */
    constructor(properties?: ILoginRsp);

    /** LoginRsp Header. */
    public Header?: IMessageHead | null;

    /** LoginRsp RetCode. */
    public RetCode: number;

    /** LoginRsp RetDesc. */
    public RetDesc: string;

    /** LoginRsp LoginID. */
    public LoginID: number | Long;

    /** LoginRsp LoginUserType. */
    public LoginUserType: number;

    /** LoginRsp AccountStatus. */
    public AccountStatus: number;

    /** LoginRsp UserID. */
    public UserID: number;

    /** LoginRsp MemberUserID. */
    public MemberUserID: number;

    /** LoginRsp AccountIDs. */
    public AccountIDs: (number | Long)[];

    /** LoginRsp Token. */
    public Token: string;

    /** LoginRsp SystemTime. */
    public SystemTime: number | Long;

    /** LoginRsp HasUpdatedPwd. */
    public HasUpdatedPwd: number;

    /** LoginRsp PwdWrongCnt. */
    public PwdWrongCnt: number;

    /** LoginRsp PwdWrongLockCnt. */
    public PwdWrongLockCnt: number;

    /** LoginRsp LoginLockHourNum. */
    public LoginLockHourNum: number;

    /** LoginRsp LoginCode. */
    public LoginCode: string;

    /**
     * Creates a new LoginRsp instance using the specified properties.
     * @param [properties] Properties to set
     * @returns LoginRsp instance
     */
    public static create(properties?: ILoginRsp): LoginRsp;

    /**
     * Encodes the specified LoginRsp message. Does not implicitly {@link LoginRsp.verify|verify} messages.
     * @param message LoginRsp message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: ILoginRsp, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified LoginRsp message, length delimited. Does not implicitly {@link LoginRsp.verify|verify} messages.
     * @param message LoginRsp message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: ILoginRsp, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a LoginRsp message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns LoginRsp
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): LoginRsp;

    /**
     * Decodes a LoginRsp message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns LoginRsp
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): LoginRsp;

    /**
     * Verifies a LoginRsp message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a LoginRsp message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns LoginRsp
     */
    public static fromObject(object: { [k: string]: any }): LoginRsp;

    /**
     * Creates a plain object from a LoginRsp message. Also converts values to other types if specified.
     * @param message LoginRsp
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: LoginRsp, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this LoginRsp to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a LogoutReq. */
export interface ILogoutReq {
    /** LogoutReq Header */
    Header?: IMessageHead | null;

    /** LogoutReq LoginID */
    LoginID?: number | Long | null;

    /** LogoutReq Token */
    Token?: string | null;

    /** LogoutReq LoginIp */
    LoginIp?: string | null;

    /** LogoutReq LoginPort */
    LoginPort?: number | null;
}

/** Represents a LogoutReq. */
export class LogoutReq implements ILogoutReq {
    /**
     * Constructs a new LogoutReq.
     * @param [properties] Properties to set
     */
    constructor(properties?: ILogoutReq);

    /** LogoutReq Header. */
    public Header?: IMessageHead | null;

    /** LogoutReq LoginID. */
    public LoginID: number | Long;

    /** LogoutReq Token. */
    public Token: string;

    /** LogoutReq LoginIp. */
    public LoginIp: string;

    /** LogoutReq LoginPort. */
    public LoginPort: number;

    /**
     * Creates a new LogoutReq instance using the specified properties.
     * @param [properties] Properties to set
     * @returns LogoutReq instance
     */
    public static create(properties?: ILogoutReq): LogoutReq;

    /**
     * Encodes the specified LogoutReq message. Does not implicitly {@link LogoutReq.verify|verify} messages.
     * @param message LogoutReq message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: ILogoutReq, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified LogoutReq message, length delimited. Does not implicitly {@link LogoutReq.verify|verify} messages.
     * @param message LogoutReq message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: ILogoutReq, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a LogoutReq message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns LogoutReq
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): LogoutReq;

    /**
     * Decodes a LogoutReq message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns LogoutReq
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): LogoutReq;

    /**
     * Verifies a LogoutReq message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a LogoutReq message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns LogoutReq
     */
    public static fromObject(object: { [k: string]: any }): LogoutReq;

    /**
     * Creates a plain object from a LogoutReq message. Also converts values to other types if specified.
     * @param message LogoutReq
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: LogoutReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this LogoutReq to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a LogoutRsp. */
export interface ILogoutRsp {
    /** LogoutRsp Header */
    Header?: IMessageHead | null;

    /** LogoutRsp RetCode */
    RetCode?: number | null;

    /** LogoutRsp RetDesc */
    RetDesc?: string | null;
}

/** Represents a LogoutRsp. */
export class LogoutRsp implements ILogoutRsp {
    /**
     * Constructs a new LogoutRsp.
     * @param [properties] Properties to set
     */
    constructor(properties?: ILogoutRsp);

    /** LogoutRsp Header. */
    public Header?: IMessageHead | null;

    /** LogoutRsp RetCode. */
    public RetCode: number;

    /** LogoutRsp RetDesc. */
    public RetDesc: string;

    /**
     * Creates a new LogoutRsp instance using the specified properties.
     * @param [properties] Properties to set
     * @returns LogoutRsp instance
     */
    public static create(properties?: ILogoutRsp): LogoutRsp;

    /**
     * Encodes the specified LogoutRsp message. Does not implicitly {@link LogoutRsp.verify|verify} messages.
     * @param message LogoutRsp message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: ILogoutRsp, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified LogoutRsp message, length delimited. Does not implicitly {@link LogoutRsp.verify|verify} messages.
     * @param message LogoutRsp message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: ILogoutRsp, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a LogoutRsp message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns LogoutRsp
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): LogoutRsp;

    /**
     * Decodes a LogoutRsp message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns LogoutRsp
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): LogoutRsp;

    /**
     * Verifies a LogoutRsp message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a LogoutRsp message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns LogoutRsp
     */
    public static fromObject(object: { [k: string]: any }): LogoutRsp;

    /**
     * Creates a plain object from a LogoutRsp message. Also converts values to other types if specified.
     * @param message LogoutRsp
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: LogoutRsp, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this LogoutRsp to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a TokenCheckReq. */
export interface ITokenCheckReq {
    /** TokenCheckReq Header */
    Header?: IMessageHead | null;

    /** TokenCheckReq LoginID */
    LoginID?: number | Long | null;

    /** TokenCheckReq Token */
    Token?: string | null;

    /** TokenCheckReq SystemTime */
    SystemTime?: number | Long | null;

    /** TokenCheckReq CheckType */
    CheckType?: number | null;
}

/** Represents a TokenCheckReq. */
export class TokenCheckReq implements ITokenCheckReq {
    /**
     * Constructs a new TokenCheckReq.
     * @param [properties] Properties to set
     */
    constructor(properties?: ITokenCheckReq);

    /** TokenCheckReq Header. */
    public Header?: IMessageHead | null;

    /** TokenCheckReq LoginID. */
    public LoginID: number | Long;

    /** TokenCheckReq Token. */
    public Token: string;

    /** TokenCheckReq SystemTime. */
    public SystemTime: number | Long;

    /** TokenCheckReq CheckType. */
    public CheckType: number;

    /**
     * Creates a new TokenCheckReq instance using the specified properties.
     * @param [properties] Properties to set
     * @returns TokenCheckReq instance
     */
    public static create(properties?: ITokenCheckReq): TokenCheckReq;

    /**
     * Encodes the specified TokenCheckReq message. Does not implicitly {@link TokenCheckReq.verify|verify} messages.
     * @param message TokenCheckReq message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: ITokenCheckReq, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified TokenCheckReq message, length delimited. Does not implicitly {@link TokenCheckReq.verify|verify} messages.
     * @param message TokenCheckReq message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: ITokenCheckReq, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a TokenCheckReq message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns TokenCheckReq
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): TokenCheckReq;

    /**
     * Decodes a TokenCheckReq message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns TokenCheckReq
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): TokenCheckReq;

    /**
     * Verifies a TokenCheckReq message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a TokenCheckReq message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns TokenCheckReq
     */
    public static fromObject(object: { [k: string]: any }): TokenCheckReq;

    /**
     * Creates a plain object from a TokenCheckReq message. Also converts values to other types if specified.
     * @param message TokenCheckReq
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: TokenCheckReq, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this TokenCheckReq to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}

/** Properties of a TokenCheckRsp. */
export interface ITokenCheckRsp {
    /** TokenCheckRsp Header */
    Header?: IMessageHead | null;

    /** TokenCheckRsp RetCode */
    RetCode?: number | null;

    /** TokenCheckRsp RetDesc */
    RetDesc?: string | null;

    /** TokenCheckRsp LoginID */
    LoginID?: number | Long | null;

    /** TokenCheckRsp TokenStatus */
    TokenStatus?: number | null;

    /** TokenCheckRsp LoginUserType */
    LoginUserType?: number | null;

    /** TokenCheckRsp UserID */
    UserID?: number | null;

    /** TokenCheckRsp MemberUserID */
    MemberUserID?: number | null;

    /** TokenCheckRsp AccountIDs */
    AccountIDs?: (number | Long)[] | null;

    /** TokenCheckRsp SystemTime */
    SystemTime?: number | Long | null;
}

/** Represents a TokenCheckRsp. */
export class TokenCheckRsp implements ITokenCheckRsp {
    /**
     * Constructs a new TokenCheckRsp.
     * @param [properties] Properties to set
     */
    constructor(properties?: ITokenCheckRsp);

    /** TokenCheckRsp Header. */
    public Header?: IMessageHead | null;

    /** TokenCheckRsp RetCode. */
    public RetCode: number;

    /** TokenCheckRsp RetDesc. */
    public RetDesc: string;

    /** TokenCheckRsp LoginID. */
    public LoginID: number | Long;

    /** TokenCheckRsp TokenStatus. */
    public TokenStatus: number;

    /** TokenCheckRsp LoginUserType. */
    public LoginUserType: number;

    /** TokenCheckRsp UserID. */
    public UserID: number;

    /** TokenCheckRsp MemberUserID. */
    public MemberUserID: number;

    /** TokenCheckRsp AccountIDs. */
    public AccountIDs: (number | Long)[];

    /** TokenCheckRsp SystemTime. */
    public SystemTime: number | Long;

    /**
     * Creates a new TokenCheckRsp instance using the specified properties.
     * @param [properties] Properties to set
     * @returns TokenCheckRsp instance
     */
    public static create(properties?: ITokenCheckRsp): TokenCheckRsp;

    /**
     * Encodes the specified TokenCheckRsp message. Does not implicitly {@link TokenCheckRsp.verify|verify} messages.
     * @param message TokenCheckRsp message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encode(message: ITokenCheckRsp, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Encodes the specified TokenCheckRsp message, length delimited. Does not implicitly {@link TokenCheckRsp.verify|verify} messages.
     * @param message TokenCheckRsp message or plain object to encode
     * @param [writer] Writer to encode to
     * @returns Writer
     */
    public static encodeDelimited(message: ITokenCheckRsp, writer?: $protobuf.Writer): $protobuf.Writer;

    /**
     * Decodes a TokenCheckRsp message from the specified reader or buffer.
     * @param reader Reader or buffer to decode from
     * @param [length] Message length if known beforehand
     * @returns TokenCheckRsp
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decode(reader: $protobuf.Reader | Uint8Array, length?: number): TokenCheckRsp;

    /**
     * Decodes a TokenCheckRsp message from the specified reader or buffer, length delimited.
     * @param reader Reader or buffer to decode from
     * @returns TokenCheckRsp
     * @throws {Error} If the payload is not a reader or valid buffer
     * @throws {$protobuf.util.ProtocolError} If required fields are missing
     */
    public static decodeDelimited(reader: $protobuf.Reader | Uint8Array): TokenCheckRsp;

    /**
     * Verifies a TokenCheckRsp message.
     * @param message Plain object to verify
     * @returns `null` if valid, otherwise the reason why it is not
     */
    public static verify(message: { [k: string]: any }): string | null;

    /**
     * Creates a TokenCheckRsp message from a plain object. Also converts values to their respective internal types.
     * @param object Plain object
     * @returns TokenCheckRsp
     */
    public static fromObject(object: { [k: string]: any }): TokenCheckRsp;

    /**
     * Creates a plain object from a TokenCheckRsp message. Also converts values to other types if specified.
     * @param message TokenCheckRsp
     * @param [options] Conversion options
     * @returns Plain object
     */
    public static toObject(message: TokenCheckRsp, options?: $protobuf.IConversionOptions): { [k: string]: any };

    /**
     * Converts this TokenCheckRsp to JSON.
     * @returns JSON object
     */
    public toJSON(): { [k: string]: any };
}
