# TypeProf 0.21.2

# Classes module Proxy

module Dynflow
  class IOBuffer
    @callback: nil

    attr_accessor io: nil
    attr_reader buffer: String
    def initialize: (nil io) -> void
    def on_data: -> nil
    def to_io: -> IO
    def to_s: -> String
    def empty?: -> bool
    def closed?: -> untyped
    def close: -> nil
    def read_available!: -> nil
    def write_available!: -> nil
    def add_data: (untyped data) -> String

    private
    def with_callback: (String? data) -> String?
  end

  class ProcessManager
    @command: untyped

    attr_reader stdin: IOBuffer
    attr_reader stdout: IOBuffer
    attr_reader stderr: IOBuffer
    attr_reader pid: Integer
    attr_reader status: Integer?
    def initialize: (untyped command) -> void
    def run!: -> ProcessManager
    def start!: -> String
    def started?: -> bool
    def done?: -> bool
    def close: -> [IOBuffer, IOBuffer, IOBuffer]
    def process: (?timeout: nil) -> Array[untyped]?
    def finish: -> Integer?
    def on_stdout: -> nil
    def on_stderr: -> nil
  end
end

end