sig
  type kind = [ `generic | `local ]
  type t = {
    kind : Bracetax_commands.Link.kind;
    linkto : string option;
    other_args : string list;
    contents : Buffer.t;
  }
  val get_kind : string -> [> `generic | `local ] * string
  val create :
    ?kind:Bracetax_commands.Link.kind ->
    ?linkto:string ->
    ?other_args:string list -> unit -> Bracetax_commands.Link.t
  val start :
    ?url_hook:(string -> string) ->
    string list -> [> `link of Bracetax_commands.Link.t ] * (string -> unit)
  val stop :
    Bracetax_commands.Link.t ->
    Bracetax_commands.Link.kind * string option * string option
  val unparse :
    [< `generic | `local ] -> string option -> string option -> string
end