(** Kitty Graphics Protocol - Command *) type action = [ `Transmit | `Transmit_and_display | `Query | `Display | `Delete | `Frame | `Animate | `Compose ] type t (** A graphics protocol command. *) (** {2 Image Transmission} *) val transmit : ?image_id:int -> ?image_number:int -> ?format:Kgp_types.format -> ?transmission:Kgp_types.transmission -> ?compression:Kgp_types.compression -> ?width:int -> ?height:int -> ?size:int -> ?offset:int -> ?quiet:Kgp_types.quiet -> unit -> t (** Transmit image data without displaying. *) val transmit_and_display : ?image_id:int -> ?image_number:int -> ?format:Kgp_types.format -> ?transmission:Kgp_types.transmission -> ?compression:Kgp_types.compression -> ?width:int -> ?height:int -> ?size:int -> ?offset:int -> ?quiet:Kgp_types.quiet -> ?placement:Kgp_placement.t -> unit -> t (** Transmit image data and display it immediately. *) val query : ?format:Kgp_types.format -> ?transmission:Kgp_types.transmission -> ?width:int -> ?height:int -> ?quiet:Kgp_types.quiet -> unit -> t (** Query terminal support without storing the image. *) (** {2 Display} *) val display : ?image_id:int -> ?image_number:int -> ?placement:Kgp_placement.t -> ?quiet:Kgp_types.quiet -> unit -> t (** Display a previously transmitted image. *) (** {2 Deletion} *) val delete : ?quiet:Kgp_types.quiet -> Kgp_types.delete -> t (** Delete images or placements. *) (** {2 Animation} *) val frame : ?image_id:int -> ?image_number:int -> ?format:Kgp_types.format -> ?transmission:Kgp_types.transmission -> ?compression:Kgp_types.compression -> ?width:int -> ?height:int -> ?quiet:Kgp_types.quiet -> frame:Kgp_frame.t -> unit -> t (** Transmit animation frame data. *) val animate : ?image_id:int -> ?image_number:int -> ?quiet:Kgp_types.quiet -> Kgp_animation.t -> t (** Control animation playback. *) val compose : ?image_id:int -> ?image_number:int -> ?quiet:Kgp_types.quiet -> Kgp_compose.t -> t (** Compose animation frames. *) (** {2 Output} *) val write : Buffer.t -> t -> data:string -> unit (** Write the command to a buffer. *) val to_string : t -> data:string -> string (** Convert command to a string. *)