/* tslint:disable */
/* eslint-disable */
export class CellularAutomaton {
  free(): void;
  /**
   * @param {number} rule
   * @param {Uint8Array} initial_state
   * @param {boolean} periodic_boundary
   * @returns {CellularAutomaton}
   */
  static new(rule: number, initial_state: Uint8Array, periodic_boundary: boolean): CellularAutomaton;
  step(): void;
  /**
   * @returns {Uint8Array}
   */
  get_state(): Uint8Array;
  /**
   * @param {number} rule
   */
  set_rule(rule: number): void;
  /**
   * @param {Uint8Array} initial_state
   */
  set_initial_state(initial_state: Uint8Array): void;
  /**
   * @param {boolean} periodic_boundary
   */
  set_periodic_boundary(periodic_boundary: boolean): void;
  reset(): void;
}
