name: Limit
class_comment: null
dependencies: []
properties:
- name: key
  visibility: public
  comment: '# * The rate limit signature key.

    # *

    # * @var mixed'
- name: maxAttempts
  visibility: public
  comment: '# * The maximum number of attempts allowed within the given number of
    seconds.

    # *

    # * @var int'
- name: decaySeconds
  visibility: public
  comment: '# * The number of seconds until the rate limit is reset.

    # *

    # * @var int'
- name: responseCallback
  visibility: public
  comment: '# * The response generator callback.

    # *

    # * @var callable'
methods:
- name: __construct
  visibility: public
  parameters:
  - name: key
    default: ''''''
  - name: maxAttempts
    default: '60'
  - name: decaySeconds
    default: '60'
  comment: "# * The rate limit signature key.\n# *\n# * @var mixed\n# */\n# public\
    \ $key;\n# \n# /**\n# * The maximum number of attempts allowed within the given\
    \ number of seconds.\n# *\n# * @var int\n# */\n# public $maxAttempts;\n# \n# /**\n\
    # * The number of seconds until the rate limit is reset.\n# *\n# * @var int\n\
    # */\n# public $decaySeconds;\n# \n# /**\n# * The response generator callback.\n\
    # *\n# * @var callable\n# */\n# public $responseCallback;\n# \n# /**\n# * Create\
    \ a new limit instance.\n# *\n# * @param  mixed  $key\n# * @param  int  $maxAttempts\n\
    # * @param  int  $decaySeconds\n# * @return void"
- name: perSecond
  visibility: public
  parameters:
  - name: maxAttempts
  - name: decaySeconds
    default: '1'
  comment: '# * Create a new rate limit.

    # *

    # * @param  int  $maxAttempts

    # * @param  int  $decaySeconds

    # * @return static'
- name: perMinute
  visibility: public
  parameters:
  - name: maxAttempts
  - name: decayMinutes
    default: '1'
  comment: '# * Create a new rate limit.

    # *

    # * @param  int  $maxAttempts

    # * @param  int  $decayMinutes

    # * @return static'
- name: perMinutes
  visibility: public
  parameters:
  - name: decayMinutes
  - name: maxAttempts
  comment: '# * Create a new rate limit using minutes as decay time.

    # *

    # * @param  int  $decayMinutes

    # * @param  int  $maxAttempts

    # * @return static'
- name: perHour
  visibility: public
  parameters:
  - name: maxAttempts
  - name: decayHours
    default: '1'
  comment: '# * Create a new rate limit using hours as decay time.

    # *

    # * @param  int  $maxAttempts

    # * @param  int  $decayHours

    # * @return static'
- name: perDay
  visibility: public
  parameters:
  - name: maxAttempts
  - name: decayDays
    default: '1'
  comment: '# * Create a new rate limit using days as decay time.

    # *

    # * @param  int  $maxAttempts

    # * @param  int  $decayDays

    # * @return static'
- name: none
  visibility: public
  parameters: []
  comment: '# * Create a new unlimited rate limit.

    # *

    # * @return static'
- name: by
  visibility: public
  parameters:
  - name: key
  comment: '# * Set the key of the rate limit.

    # *

    # * @param  mixed  $key

    # * @return $this'
- name: response
  visibility: public
  parameters:
  - name: callback
  comment: '# * Set the callback that should generate the response when the limit
    is exceeded.

    # *

    # * @param  callable  $callback

    # * @return $this'
traits: []
interfaces: []