// Generated by Lisette bindgen
// Source: encoding/pem (Go stdlib)
// Go: 1.25.5
// Lisette: 0.1.11

import "go:io"

pub fn Decode(data: Slice<uint8>) -> (Ref<Block>, Slice<uint8>)

/// Encode writes the PEM encoding of b to out.
pub fn Encode(out: io.Writer, b: Ref<Block>) -> Result<(), error>

/// EncodeToMemory returns the PEM encoding of b.
/// 
/// If b has invalid headers and cannot be encoded,
/// EncodeToMemory returns nil. If it is important to
/// report details about this error case, use [Encode] instead.
pub fn EncodeToMemory(b: Ref<Block>) -> Slice<uint8>

/// A Block represents a PEM encoded structure.
/// 
/// The encoded form is:
/// 
/// 	-----BEGIN Type-----
/// 	Headers
/// 	base64-encoded Bytes
/// 	-----END Type-----
/// 
/// where [Block.Headers] is a possibly empty sequence of Key: Value lines.
pub struct Block {
  pub Type: string,
  pub Headers: Map<string, string>,
  pub Bytes: Slice<uint8>,
}
