// package: bet.beteran.c2se.common.bank
// file: c2se/common/bank.proto

import * as jspb from 'google-protobuf';
import * as protobuf_rpc_error_pb from '../../protobuf/rpc/error_pb';
import * as protobuf_pagination_pagination_pb from '../../protobuf/pagination/pagination_pb';
import * as protobuf_pagination_search_pb from '../../protobuf/pagination/search_pb';
import * as protobuf_pagination_sort_pb from '../../protobuf/pagination/sort_pb';
import * as models_account_bank_pb from '../../models/account/bank_pb';

export class ListBanksRequest extends jspb.Message {
  hasPagination(): boolean;
  clearPagination(): void;
  getPagination(): protobuf_pagination_pagination_pb.Pagination | undefined;
  setPagination(value?: protobuf_pagination_pagination_pb.Pagination): void;

  clearSearchesList(): void;
  getSearchesList(): Array<protobuf_pagination_search_pb.Search>;
  setSearchesList(value: Array<protobuf_pagination_search_pb.Search>): void;
  addSearches(
    value?: protobuf_pagination_search_pb.Search,
    index?: number
  ): protobuf_pagination_search_pb.Search;

  clearSortsList(): void;
  getSortsList(): Array<protobuf_pagination_sort_pb.Sort>;
  setSortsList(value: Array<protobuf_pagination_sort_pb.Sort>): void;
  addSorts(
    value?: protobuf_pagination_sort_pb.Sort,
    index?: number
  ): protobuf_pagination_sort_pb.Sort;

  hasNameLike(): boolean;
  clearNameLike(): void;
  getNameLike(): string;
  setNameLike(value: string): void;

  hasShow(): boolean;
  clearShow(): void;
  getShow(): boolean;
  setShow(value: boolean): void;

  hasCanUse(): boolean;
  clearCanUse(): void;
  getCanUse(): boolean;
  setCanUse(value: boolean): void;

  hasMemoLike(): boolean;
  clearMemoLike(): void;
  getMemoLike(): string;
  setMemoLike(value: string): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): ListBanksRequest.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: ListBanksRequest
  ): ListBanksRequest.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: ListBanksRequest,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): ListBanksRequest;
  static deserializeBinaryFromReader(
    message: ListBanksRequest,
    reader: jspb.BinaryReader
  ): ListBanksRequest;
}

export namespace ListBanksRequest {
  export type AsObject = {
    pagination?: protobuf_pagination_pagination_pb.Pagination.AsObject;
    searchesList: Array<protobuf_pagination_search_pb.Search.AsObject>;
    sortsList: Array<protobuf_pagination_sort_pb.Sort.AsObject>;
    nameLike: string;
    show: boolean;
    canUse: boolean;
    memoLike: string;
  };
}

export class ListBanksResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): ListBanksResponse.Result | undefined;
  setResult(value?: ListBanksResponse.Result): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): ListBanksResponse.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: ListBanksResponse
  ): ListBanksResponse.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: ListBanksResponse,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): ListBanksResponse;
  static deserializeBinaryFromReader(
    message: ListBanksResponse,
    reader: jspb.BinaryReader
  ): ListBanksResponse;
}

export namespace ListBanksResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: ListBanksResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    clearBanksList(): void;
    getBanksList(): Array<models_account_bank_pb.Bank>;
    setBanksList(value: Array<models_account_bank_pb.Bank>): void;
    addBanks(
      value?: models_account_bank_pb.Bank,
      index?: number
    ): models_account_bank_pb.Bank;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): Result.AsObject;
    static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
    static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
    static extensionsBinary: {
      [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
    };
    static serializeBinaryToWriter(
      message: Result,
      writer: jspb.BinaryWriter
    ): void;
    static deserializeBinary(bytes: Uint8Array): Result;
    static deserializeBinaryFromReader(
      message: Result,
      reader: jspb.BinaryReader
    ): Result;
  }

  export namespace Result {
    export type AsObject = {
      banksList: Array<models_account_bank_pb.Bank.AsObject>;
    };
  }
}

export class CreateBankRequest extends jspb.Message {
  getName(): string;
  setName(value: string): void;

  getShow(): boolean;
  setShow(value: boolean): void;

  getCanUse(): boolean;
  setCanUse(value: boolean): void;

  hasMemo(): boolean;
  clearMemo(): void;
  getMemo(): string;
  setMemo(value: string): void;

  hasExpiresAt(): boolean;
  clearExpiresAt(): void;
  getExpiresAt(): number;
  setExpiresAt(value: number): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): CreateBankRequest.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: CreateBankRequest
  ): CreateBankRequest.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: CreateBankRequest,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): CreateBankRequest;
  static deserializeBinaryFromReader(
    message: CreateBankRequest,
    reader: jspb.BinaryReader
  ): CreateBankRequest;
}

export namespace CreateBankRequest {
  export type AsObject = {
    name: string;
    show: boolean;
    canUse: boolean;
    memo: string;
    expiresAt: number;
  };
}

export class CreateBankResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): CreateBankResponse.Result | undefined;
  setResult(value?: CreateBankResponse.Result): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): CreateBankResponse.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: CreateBankResponse
  ): CreateBankResponse.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: CreateBankResponse,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): CreateBankResponse;
  static deserializeBinaryFromReader(
    message: CreateBankResponse,
    reader: jspb.BinaryReader
  ): CreateBankResponse;
}

export namespace CreateBankResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: CreateBankResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    hasBank(): boolean;
    clearBank(): void;
    getBank(): models_account_bank_pb.Bank | undefined;
    setBank(value?: models_account_bank_pb.Bank): void;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): Result.AsObject;
    static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
    static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
    static extensionsBinary: {
      [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
    };
    static serializeBinaryToWriter(
      message: Result,
      writer: jspb.BinaryWriter
    ): void;
    static deserializeBinary(bytes: Uint8Array): Result;
    static deserializeBinaryFromReader(
      message: Result,
      reader: jspb.BinaryReader
    ): Result;
  }

  export namespace Result {
    export type AsObject = {
      bank?: models_account_bank_pb.Bank.AsObject;
    };
  }
}

export class UpdateBankRequest extends jspb.Message {
  getId(): string;
  setId(value: string): void;

  getName(): string;
  setName(value: string): void;

  getShow(): boolean;
  setShow(value: boolean): void;

  getCanUse(): boolean;
  setCanUse(value: boolean): void;

  hasMemo(): boolean;
  clearMemo(): void;
  getMemo(): string;
  setMemo(value: string): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): UpdateBankRequest.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: UpdateBankRequest
  ): UpdateBankRequest.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: UpdateBankRequest,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): UpdateBankRequest;
  static deserializeBinaryFromReader(
    message: UpdateBankRequest,
    reader: jspb.BinaryReader
  ): UpdateBankRequest;
}

export namespace UpdateBankRequest {
  export type AsObject = {
    id: string;
    name: string;
    show: boolean;
    canUse: boolean;
    memo: string;
  };
}

export class UpdateBankResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): UpdateBankResponse.Result | undefined;
  setResult(value?: UpdateBankResponse.Result): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): UpdateBankResponse.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: UpdateBankResponse
  ): UpdateBankResponse.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: UpdateBankResponse,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): UpdateBankResponse;
  static deserializeBinaryFromReader(
    message: UpdateBankResponse,
    reader: jspb.BinaryReader
  ): UpdateBankResponse;
}

export namespace UpdateBankResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: UpdateBankResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    hasBank(): boolean;
    clearBank(): void;
    getBank(): models_account_bank_pb.Bank | undefined;
    setBank(value?: models_account_bank_pb.Bank): void;

    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): Result.AsObject;
    static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
    static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
    static extensionsBinary: {
      [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
    };
    static serializeBinaryToWriter(
      message: Result,
      writer: jspb.BinaryWriter
    ): void;
    static deserializeBinary(bytes: Uint8Array): Result;
    static deserializeBinaryFromReader(
      message: Result,
      reader: jspb.BinaryReader
    ): Result;
  }

  export namespace Result {
    export type AsObject = {
      bank?: models_account_bank_pb.Bank.AsObject;
    };
  }
}

export class DeleteBankRequest extends jspb.Message {
  getId(): string;
  setId(value: string): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): DeleteBankRequest.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: DeleteBankRequest
  ): DeleteBankRequest.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: DeleteBankRequest,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): DeleteBankRequest;
  static deserializeBinaryFromReader(
    message: DeleteBankRequest,
    reader: jspb.BinaryReader
  ): DeleteBankRequest;
}

export namespace DeleteBankRequest {
  export type AsObject = {
    id: string;
  };
}

export class DeleteBankResponse extends jspb.Message {
  hasError(): boolean;
  clearError(): void;
  getError(): protobuf_rpc_error_pb.Error | undefined;
  setError(value?: protobuf_rpc_error_pb.Error): void;

  hasResult(): boolean;
  clearResult(): void;
  getResult(): DeleteBankResponse.Result | undefined;
  setResult(value?: DeleteBankResponse.Result): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): DeleteBankResponse.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: DeleteBankResponse
  ): DeleteBankResponse.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: DeleteBankResponse,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): DeleteBankResponse;
  static deserializeBinaryFromReader(
    message: DeleteBankResponse,
    reader: jspb.BinaryReader
  ): DeleteBankResponse;
}

export namespace DeleteBankResponse {
  export type AsObject = {
    error?: protobuf_rpc_error_pb.Error.AsObject;
    result?: DeleteBankResponse.Result.AsObject;
  };

  export class Result extends jspb.Message {
    serializeBinary(): Uint8Array;
    toObject(includeInstance?: boolean): Result.AsObject;
    static toObject(includeInstance: boolean, msg: Result): Result.AsObject;
    static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
    static extensionsBinary: {
      [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
    };
    static serializeBinaryToWriter(
      message: Result,
      writer: jspb.BinaryWriter
    ): void;
    static deserializeBinary(bytes: Uint8Array): Result;
    static deserializeBinaryFromReader(
      message: Result,
      reader: jspb.BinaryReader
    ): Result;
  }

  export namespace Result {
    export type AsObject = {};
  }
}
