// package: lnks.nstd
// file: subprocess.proto

import * as jspb from "google-protobuf";
import * as google_protobuf_empty_pb from "google-protobuf/google/protobuf/empty_pb";

export class Chunk extends jspb.Message {
  getData(): Uint8Array | string;
  getData_asU8(): Uint8Array;
  getData_asB64(): string;
  setData(value: Uint8Array | string): void;

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

export namespace Chunk {
  export type AsObject = {
    data: Uint8Array | string,
  }
}

export class SpawnInfo extends jspb.Message {
  getCommand(): string;
  setCommand(value: string): void;

  clearArgumentsList(): void;
  getArgumentsList(): Array<string>;
  setArgumentsList(value: Array<string>): void;
  addArguments(value: string, index?: number): string;

  clearEnvironmentList(): void;
  getEnvironmentList(): Array<string>;
  setEnvironmentList(value: Array<string>): void;
  addEnvironment(value: string, index?: number): string;

  getWorkdir(): string;
  setWorkdir(value: string): void;

  getTty(): boolean;
  setTty(value: boolean): void;

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

export namespace SpawnInfo {
  export type AsObject = {
    command: string,
    argumentsList: Array<string>,
    environmentList: Array<string>,
    workdir: string,
    tty: boolean,
  }
}

export class ProcessID extends jspb.Message {
  getId(): number;
  setId(value: number): void;

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

export namespace ProcessID {
  export type AsObject = {
    id: number,
  }
}

export class PipeID extends jspb.Message {
  hasPid(): boolean;
  clearPid(): void;
  getPid(): ProcessID | undefined;
  setPid(value?: ProcessID): void;

  getFd(): number;
  setFd(value: number): void;

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

export namespace PipeID {
  export type AsObject = {
    pid?: ProcessID.AsObject,
    fd: number,
  }
}

export class WritePipeRequest extends jspb.Message {
  hasPipe(): boolean;
  clearPipe(): void;
  getPipe(): PipeID | undefined;
  setPipe(value?: PipeID): void;

  getData(): Uint8Array | string;
  getData_asU8(): Uint8Array;
  getData_asB64(): string;
  setData(value: Uint8Array | string): void;

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

export namespace WritePipeRequest {
  export type AsObject = {
    pipe?: PipeID.AsObject,
    data: Uint8Array | string,
  }
}

export class ReadPipeRequest extends jspb.Message {
  hasPipe(): boolean;
  clearPipe(): void;
  getPipe(): PipeID | undefined;
  setPipe(value?: PipeID): void;

  getSize(): number;
  setSize(value: number): void;

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

export namespace ReadPipeRequest {
  export type AsObject = {
    pipe?: PipeID.AsObject,
    size: number,
  }
}

