module Lrama
  class State
    @id: untyped

    @accessing_symbol: untyped

    @kernels: untyped

    @items: Array[States::Item]

    @items_to_state: untyped

    @conflicts: Array[State::ShiftReduceConflict|State::ReduceReduceConflict]

    @resolved_conflicts: untyped

    @default_reduction_rule: untyped

    @closure: untyped

    @nterm_transitions: untyped

    @term_transitions: untyped

    @transitions: Array[[Shift, State]]

    attr_reader id: untyped

    attr_reader accessing_symbol: untyped

    attr_reader kernels: untyped

    attr_reader conflicts: Array[State::ShiftReduceConflict|State::ReduceReduceConflict]

    attr_reader resolved_conflicts: untyped

    attr_reader default_reduction_rule: untyped

    attr_reader closure: untyped

    attr_reader items: Array[States::Item]

    attr_accessor shifts: Array[Shift]

    attr_accessor reduces: untyped

    def initialize: (untyped id, untyped accessing_symbol, Array[States::Item] kernels) -> void

    def closure=: (untyped closure) -> untyped

    def non_default_reduces: () -> untyped

    def compute_shifts_reduces: () -> untyped

    def set_items_to_state: (untyped items, untyped next_state) -> untyped

    def set_look_ahead: (untyped rule, untyped look_ahead) -> untyped

    def nterm_transitions: () -> untyped

    def term_transitions: () -> untyped

    def transitions: () -> Array[[Shift, State]]

    def selected_term_transitions: () -> untyped

    def transition: (untyped sym) -> untyped

    def find_reduce_by_item!: (untyped item) -> untyped

    def default_reduction_rule=: (untyped default_reduction_rule) -> untyped

    def has_conflicts?: () -> untyped

    def sr_conflicts: () -> untyped

    def rr_conflicts: () -> untyped
  end
end