pub mod canonical;
pub mod conversion;
pub mod derive;
pub mod fingerprint;
pub mod graph;
pub mod host_managed;
pub mod metadata;
pub mod multimodal;
#[cfg(feature = "full")]
pub mod protobuf;
pub mod render;
pub mod schema_type;
pub mod schema_value;
pub mod stream;
pub mod tool;
pub mod unstructured;
pub mod validation;
#[cfg(all(
any(feature = "guest", feature = "host"),
not(all(feature = "guest", feature = "host"))
))]
pub mod wit;
#[cfg(any(test, feature = "proptest"))]
pub mod proptest_strategies;
pub use conversion::{
DecodeError, FromSchema, FromSchemaError, IntoSchema, IntoTypedSchemaValue, MergeError,
Quantity, QuantityUnit, SchemaBuilder, merge_agent_graphs, try_into_schema_graph,
try_into_typed_schema_value,
};
pub use fingerprint::{
SchemaFingerprintError, SchemaFingerprintV1, resolve_stream_element_schema_v1,
schema_fingerprint_v1,
};
#[cfg(feature = "derive")]
pub use golem_schema_derive::{FromSchema, FromWire, IntoSchema, IntoWire, Schema, WireSchema};
pub use graph::{SchemaGraph, SchemaTypeDef, TypedSchemaValue};
pub use host_managed::{
HostManagedKind, HostManagedOccurrence, HostManagedTraversalError, RedactedSchemaValue,
find_host_managed_type, find_host_managed_value, redacted_schema_value_debug,
};
pub use metadata::{MetadataEnvelope, Role, TypeId};
pub use schema_type::{
BinaryRestrictions, DiscriminatorRule, FieldDiscriminator, NamedFieldType, PathDirection,
PathKind, PathSpec, PermissionCardSpec, QuantitySpec, QuantityValue, QuotaTokenSpec,
ResultSpec, SchemaType, SecretSpec, TextRestrictions, UnionBranch, UnionSpec, UrlRestrictions,
VariantCaseType,
};
pub use schema_value::{
BinaryValuePayload, DurationValuePayload, PermissionCardValuePayload, QuotaTokenValuePayload,
ResultValuePayload, SchemaValue, SecretValuePayload, TextValuePayload, UnionValuePayload,
VariantValuePayload,
};
pub use stream::SchemaValueStream;
#[cfg(all(feature = "host", not(feature = "guest")))]
pub use stream::SchemaValueStreamHandleRep;