@trylimbo/sdk-verifier 0.2.24 → 0.2.25-canary.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/gen/ffi/index.d.ts +1700 -1884
  2. package/gen/ffi/index.js +2189 -2262
  3. package/package.json +3 -3
@@ -181,20 +181,33 @@ declare const pointerLiteralSymbol: unique symbol;
181
181
  */
182
182
  declare const uniffiTypeNameSymbol: unique symbol;
183
183
  declare namespace trylimbo_verifier_d_exports {
184
- export { Actor, AssertionMetadata, AssetFormat, AssetFormat_Tags, AssetType, AssetVerification, AssetVerifier, AssetVerifierInterface, AssetVerifierLike, AssetVerifierOptions, Binder, BinderImpl, ByContent, ByReference, ClaimGeneratorInfo, Code, ContentBindingClass, ContentTrigger, Coordinate, Credential, CredentialOrigin, CredentialOrigin_Tags, DataSource, DeriveOptions, EndInclusivity, FieldViolation, FileSource, FileSourceInterface, FileSourceLike, FingerprintCheck, FingerprintCheck_Tags, Frame, GoldenComparison, GoldenComparison_Tags, HardBinding, HashedUri, HeldBinder, HeldBinderInterface, HeldBinderLike, Ingredient, IngredientDeltaValidationResult, InitValidation, IsccBinder, IsccBinderInterface, IsccBinderLike, Item, JsonValue, Lineage, Manifest, ManifestAssertion, ManifestAssertionKind, ManifestStore, MediaValidation, MemorySource, MemorySourceInterface, MemorySourceLike, PluginReader, Range, RangeSource, RangeSourceImpl, RangeType, Recovery, RecoveryDiscovery, RecoveryDiscovery_Tags, RecoveryIssue, RecoveryIssue_Tags, RecoveryStatus, RecoverySummary, RecoveryTrigger, Region, RegionOfInterest, Relationship, Repository, Repository_Tags, ResourceRef, ReviewRating, Role, SdkError, SdkError_Tags, SegmentTiming, SegmentValidation, SegmentValidation_Tags, SessionKeySummary, Shape, ShapeType, SignatureInfo, SigningAlgSchema, SimilarityScore, SoftBinding, StatusCodes, StreamSession, StreamSessionInterface, StreamSessionLike, StreamVerifier, StreamVerifierInterface, StreamVerifierLike, StreamVerifierOptions, Text, TextSelector, TextSelectorRange, Time, TimeType, UnitType, UriOrResource, UriOrResource_Tags, ValidationCode, ValidationCodeKind, ValidationResults, ValidationState, ValidationStatus, Verdict, VerdictRule, Verdict_Tags, c2paTrustList, c2paTsaTrustList, _default$1 as default, devCa, parse, resource, thumbnails };
184
+ export { Actor, AssertionMetadata, AssetType, AssetVerification, AssetVerifier, AssetVerifierInterface, AssetVerifierLike, AssetVerifierOptions, Block, ByteRange, ClaimGeneratorInfo, Code, Compute, ComputeImpl, ComputeRequest, Content, ContentWhen, Coordinate, Credential, CredentialInterface, CredentialLike, CredentialOrigin, CredentialOrigin_Tags, DataSource, Discovery, DiscoveryVia, DiscoveryVia_Tags, EndInclusivity, FieldViolation, FileSource, FileSourceInterface, FileSourceLike, FingerprintCheck, FingerprintCheck_Tags, Frame, Golden, Golden_Tags, HardBinding, HashedUri, Hint, Ingredient, IngredientDeltaValidationResult, InitValidation, Item, JsonValue, Lineage, Manifest, ManifestAssertion, ManifestAssertionKind, ManifestStore, MediaValidation, MemorySource, MemorySourceInterface, MemorySourceLike, PluginReader, Range, RangeSource, RangeSourceImpl, RangeType, Recovery, RecoveryIssue, RecoveryIssue_Tags, RecoveryStatus, RecoverySummary, RecoveryTrigger, Reference, RegionOfInterest, Relationship, Repository, Repository_Tags, ResourceRef, ReviewRating, Role, Scope, SdkError, SdkError_Tags, SegmentTiming, SegmentValidation, SegmentValidation_Tags, SessionKey, Shape, ShapeType, SignatureInfo, SigningAlgSchema, SimilarityScore, SoftBindingSource, SoftBindingSource_Tags, SoftBindingType, StatusCodes, StreamSession, StreamSessionInterface, StreamSessionLike, StreamVerifier, StreamVerifierInterface, StreamVerifierLike, StreamVerifierOptions, Text, TextSelector, TextSelectorRange, Time, TimeType, Timespan, Trust, UnitType, UriOrResource, UriOrResource_Tags, ValidationCode, ValidationCodeKind, ValidationResults, ValidationState, ValidationStatus, Verdict, VerdictRule, Verdict_Tags, c2paTrustList, c2paTsaTrustList, computeSoftBinding, _default$1 as default, devCa, parse, resource };
185
185
  }
186
186
  /**
187
- * Official C2PA Conformance Program signing-CA trust anchors (a compile-time
188
- * snapshot). Trusted by default already; exposed for callers pinning their own list.
187
+ * The bundled C2PA Conformance Program signing-CA trust list (a release snapshot). Trusted by
188
+ * default with `Trust.c2pa`; read it to pin or extend your own list.
189
189
  */
190
190
  export declare function c2paTrustList(): string;
191
191
  /**
192
- * Official C2PA time-stamping-authority (TSA) trust anchors (a compile-time snapshot).
192
+ * The bundled C2PA time-stamping-authority trust list (a release snapshot).
193
193
  */
194
194
  export declare function c2paTsaTrustList(): string;
195
+ /**
196
+ * The values this SDK computes for `alg` over an asset, `[]` when it finds none. `format` is
197
+ * the asset's media type; omitted, the bytes name it.
198
+ *
199
+ * # Errors
200
+ *
201
+ * An algorithm this SDK computes no value of, a `format` that is no media type or that the bytes
202
+ * contradict, an unreadable source, or no trustworthy answer.
203
+ */
204
+ export declare function computeSoftBinding(alg: string, source: RangeSource, format?: string | undefined, asyncOpts_?: {
205
+ signal: AbortSignal;
206
+ }): Promise<Array<Block>>;
195
207
  /**
196
208
  * PEM trust anchor for the Limbo Integrity development signing environment, **development
197
- * only**, no security guarantees. Never ship it in a release anchor list.
209
+ * only**, no security guarantees: put it in `Trust.anchors` for a development build, never in a
210
+ * release.
198
211
  */
199
212
  export declare function devCa(): string;
200
213
  /**
@@ -206,42 +219,26 @@ export declare function devCa(): string;
206
219
  * validation fields it carries are not a state anything established here; verifying is
207
220
  * `AssetVerifier.verify`, which takes the asset.
208
221
  *
209
- * Runs on the calling thread rather than an SDK worker, unlike `embed`: a manifest store is
210
- * bounded by the decompression ceiling, where an asset is not.
211
- *
212
222
  * # Errors
213
223
  *
214
224
  * `READER_INVALID` when the bytes are not a manifest store c2pa can parse.
215
225
  */
216
- export declare function parse(manifest: ArrayBuffer): ManifestStore;
226
+ export declare function parse(manifest: ArrayBuffer, asyncOpts_?: {
227
+ signal: AbortSignal;
228
+ }): Promise<ManifestStore>;
217
229
  /**
218
230
  * The bytes of one resource in a detached manifest store, or nothing when it holds none under
219
- * `uri`.
220
- *
221
- * `uri` is the `identifier` on a resource reference the store carries, so walking the chain in
222
- * the parsed store is what produces it: any manifest's claim thumbnail, including a non-active
223
- * one, and any ingredient's. Render it with the `format` beside that identifier. A `uri` naming a
224
- * manifest rather than a resource answers that manifest's own JUMBF, so pass what a reference
225
- * states, never a bare label.
231
+ * `uri`: the `identifier` on a resource reference the parsed store carries. A verified
232
+ * credential answers the same through its own `resource`.
226
233
  *
227
234
  * # Errors
228
235
  *
229
236
  * `READER_INVALID` when the bytes are not a manifest store c2pa can parse, or the store holds
230
237
  * the resource but cannot produce it.
231
238
  */
232
- export declare function resource(manifest: ArrayBuffer, uri: string): ArrayBuffer | undefined;
233
- /**
234
- * Every thumbnail the store references, by the `identifier` it references them under: each
235
- * manifest's claim thumbnail and each ingredient's.
236
- *
237
- * One parse for the whole set, where [`resource`] pays one per call. A reference the store cannot
238
- * produce is left out rather than failing the set.
239
- *
240
- * # Errors
241
- *
242
- * `READER_INVALID` when the bytes are not a manifest store c2pa can parse.
243
- */
244
- export declare function thumbnails(manifest: ArrayBuffer): Map<string, ArrayBuffer>;
239
+ export declare function resource(manifest: ArrayBuffer, uri: string, asyncOpts_?: {
240
+ signal: AbortSignal;
241
+ }): Promise<ArrayBuffer | undefined>;
245
242
  /**
246
243
  * A `HashedUri` provides a reference to content available within the same
247
244
  * manifest store.
@@ -793,662 +790,202 @@ export declare const AssetType: Readonly<{
793
790
  new: (partial: Partial<AssetType> & Required<Omit<AssetType, "version">>) => AssetType;
794
791
  defaults: () => Partial<AssetType>;
795
792
  }>;
796
- export type SoftBinding = {
797
- alg: string;
798
- value: string;
793
+ /**
794
+ * Whether the manifest's hard binding holds over the bytes this verify read.
795
+ *
796
+ * c2pa folds a hash mismatch into `validation_state == Invalid` with every other failure. A
797
+ * manifest recovered through a soft binding is validated against a transcode or a later edit,
798
+ * so a mismatch is the one failure it is expected to carry; naming it lets a caller tell "for
799
+ * other bytes" from "broken" without reading status codes.
800
+ */
801
+ export declare enum HardBinding {
802
+ /**
803
+ * No data, box, BMFF or collection hash failed against these bytes.
804
+ */
805
+ Match = 0,
806
+ /**
807
+ * A hash mismatch is among the active manifest's failures: the manifest describes other
808
+ * bytes. Whether it is otherwise authentic is its remaining statuses.
809
+ */
810
+ Mismatch = 1
811
+ }
812
+ /**
813
+ * The re-sign chain, read from the validated stores themselves: C2PA 2.4 18.16.11 copies a
814
+ * `parentOf` ingredient's manifest into its successor's store, so a link here was signed by the
815
+ * successor. A repository's ordering is a hint; this is the evidence.
816
+ */
817
+ export type Lineage = {
818
+ /**
819
+ * Active manifest labels this credential's active manifest opened as a `parentOf`
820
+ * ingredient, whether or not they were returned by this verify.
821
+ */
822
+ supersedes: Array<string>;
823
+ /**
824
+ * Active manifest labels of the other credentials in this result that name this one in
825
+ * their `supersedes`.
826
+ */
827
+ supersededBy: Array<string>;
799
828
  };
800
829
  /**
801
- * Generated factory for {@link SoftBinding} record objects.
830
+ * Generated factory for {@link Lineage} record objects.
802
831
  */
803
- export declare const SoftBinding: Readonly<{
804
- create: (partial: Partial<SoftBinding> & Required<Omit<SoftBinding, never>>) => SoftBinding;
805
- new: (partial: Partial<SoftBinding> & Required<Omit<SoftBinding, never>>) => SoftBinding;
806
- defaults: () => Partial<SoftBinding>;
832
+ export declare const Lineage: Readonly<{
833
+ create: (partial: Partial<Lineage> & Required<Omit<Lineage, never>>) => Lineage;
834
+ new: (partial: Partial<Lineage> & Required<Omit<Lineage, never>>) => Lineage;
835
+ defaults: () => Partial<Lineage>;
807
836
  }>;
808
837
  /**
809
- * The class of binding a repository derived from an uploaded asset.
810
- *
811
- * Unlike [`SoftBinding`], this carries no value: the C2PA `byContent` response does not return
812
- * one. The algorithm and class are still evidence because every request selects exactly one
813
- * advertised algorithm.
838
+ * Assertions in C2PA can be stored in several formats
814
839
  */
815
- export declare enum ContentBindingClass {
816
- Fingerprint = 0,
817
- Watermark = 1
840
+ export declare enum ManifestAssertionKind {
841
+ Cbor = 0,
842
+ Json = 1,
843
+ Binary = 2,
844
+ Uri = 3
818
845
  }
819
846
  /**
820
- * Typealias from the type name used in the UDL file to the builtin type. This
821
- * is needed because the UDL type name is used in function/method signatures.
847
+ * A labeled container for an Assertion value in a Manifest
822
848
  */
823
- export type SimilarityScore = number;
824
- export declare enum RecoveryDiscovery_Tags {
825
- ByBinding = "ByBinding",
826
- ByContent = "ByContent",
827
- ByReference = "ByReference"
849
+ export type ManifestAssertion = {
850
+ /**
851
+ * True if this assertion is attributed to the signer
852
+ * This maps to a created vs a gathered assertion. (defaults to false)
853
+ */
854
+ created?: boolean;
855
+ /**
856
+ * The data of the assertion as Value
857
+ */
858
+ data: JsonValue;
859
+ /**
860
+ * There can be more than one assertion for any label
861
+ */
862
+ instance?: number;
863
+ /**
864
+ * The [ManifestAssertionKind] for this assertion (as stored in c2pa content)
865
+ */
866
+ kind?: ManifestAssertionKind;
867
+ /**
868
+ * An assertion label in reverse domain format
869
+ */
870
+ label: string;
871
+ };
872
+ /**
873
+ * Generated factory for {@link ManifestAssertion} record objects.
874
+ */
875
+ export declare const ManifestAssertion: Readonly<{
876
+ create: (partial: Partial<ManifestAssertion> & Required<Omit<ManifestAssertion, "created" | "instance" | "kind">>) => ManifestAssertion;
877
+ new: (partial: Partial<ManifestAssertion> & Required<Omit<ManifestAssertion, "created" | "instance" | "kind">>) => ManifestAssertion;
878
+ defaults: () => Partial<ManifestAssertion>;
879
+ }>;
880
+ /**
881
+ * A reference to a resource to be used in JSON serialization.
882
+ *
883
+ * The underlying data can be read as a stream via [`Reader::resource_to_stream`][crate::Reader::resource_to_stream].
884
+ */
885
+ export type ResourceRef = {
886
+ /**
887
+ * The algorithm used to hash the resource (if applicable).
888
+ */
889
+ alg?: string;
890
+ /**
891
+ * More detailed data types as defined in the C2PA spec.
892
+ */
893
+ dataTypes?: Array<AssetType>;
894
+ /**
895
+ * The mime type of the referenced resource.
896
+ */
897
+ format: string;
898
+ /**
899
+ * The hash of the resource (if applicable).
900
+ */
901
+ hash?: string;
902
+ /**
903
+ * A URI that identifies the resource as referenced from the manifest.
904
+ *
905
+ * This may be a JUMBF URI, a file path, a URL or any other string.
906
+ * Relative JUMBF URIs will be resolved with the manifest label.
907
+ * Relative file paths will be resolved with the base path if provided.
908
+ */
909
+ identifier: string;
910
+ };
911
+ /**
912
+ * Generated factory for {@link ResourceRef} record objects.
913
+ */
914
+ export declare const ResourceRef: Readonly<{
915
+ create: (partial: Partial<ResourceRef> & Required<Omit<ResourceRef, "alg" | "dataTypes" | "hash">>) => ResourceRef;
916
+ new: (partial: Partial<ResourceRef> & Required<Omit<ResourceRef, "alg" | "dataTypes" | "hash">>) => ResourceRef;
917
+ defaults: () => Partial<ResourceRef>;
918
+ }>;
919
+ export declare enum UriOrResource_Tags {
920
+ ResourceRef = "ResourceRef",
921
+ HashedUri = "HashedUri"
828
922
  }
829
- export declare const RecoveryDiscovery: Readonly<{
830
- instanceOf: (obj: any) => obj is RecoveryDiscovery;
831
- ByBinding: {
832
- new (inner: {
833
- binderIndex: number;
834
- binding: SoftBinding;
835
- class: ContentBindingClass;
836
- repositoryScore?: SimilarityScore;
837
- repository: string;
838
- fetchedFrom: string;
839
- }): {
840
- /**
841
- * @private
842
- * This field is private and should not be used, use `tag` instead.
843
- */
844
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
845
- readonly tag: RecoveryDiscovery_Tags.ByBinding;
846
- readonly inner: Readonly<{
847
- binderIndex: number;
848
- binding: SoftBinding;
849
- class: ContentBindingClass;
850
- repositoryScore?: SimilarityScore;
851
- repository: string;
852
- fetchedFrom: string;
853
- }>;
854
- };
855
- "new"(inner: {
856
- binderIndex: number;
857
- binding: SoftBinding;
858
- class: ContentBindingClass;
859
- repositoryScore?: SimilarityScore;
860
- repository: string;
861
- fetchedFrom: string;
862
- }): {
863
- /**
864
- * @private
865
- * This field is private and should not be used, use `tag` instead.
866
- */
867
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
868
- readonly tag: RecoveryDiscovery_Tags.ByBinding;
869
- readonly inner: Readonly<{
870
- binderIndex: number;
871
- binding: SoftBinding;
872
- class: ContentBindingClass;
873
- repositoryScore?: SimilarityScore;
874
- repository: string;
875
- fetchedFrom: string;
876
- }>;
877
- };
878
- instanceOf(obj: any): obj is {
879
- /**
880
- * @private
881
- * This field is private and should not be used, use `tag` instead.
882
- */
883
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
884
- readonly tag: RecoveryDiscovery_Tags.ByBinding;
885
- readonly inner: Readonly<{
886
- binderIndex: number;
887
- binding: SoftBinding;
888
- class: ContentBindingClass;
889
- repositoryScore?: SimilarityScore;
890
- repository: string;
891
- fetchedFrom: string;
892
- }>;
893
- };
894
- };
895
- ByContent: {
896
- new (inner: {
897
- algorithm: string;
898
- class: ContentBindingClass;
899
- hint?: SoftBinding;
900
- repositoryScore?: SimilarityScore;
901
- repository: string;
902
- fetchedFrom: string;
903
- }): {
923
+ /**
924
+ * `UriOrResource`
925
+ */
926
+ export declare const UriOrResource: Readonly<{
927
+ instanceOf: (obj: any) => obj is UriOrResource;
928
+ ResourceRef: {
929
+ new (v0: ResourceRef): {
904
930
  /**
905
931
  * @private
906
932
  * This field is private and should not be used, use `tag` instead.
907
933
  */
908
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
909
- readonly tag: RecoveryDiscovery_Tags.ByContent;
910
- readonly inner: Readonly<{
911
- algorithm: string;
912
- class: ContentBindingClass;
913
- hint?: SoftBinding;
914
- repositoryScore?: SimilarityScore;
915
- repository: string;
916
- fetchedFrom: string;
917
- }>;
934
+ readonly [uniffiTypeNameSymbol]: "UriOrResource";
935
+ readonly tag: UriOrResource_Tags.ResourceRef;
936
+ readonly inner: Readonly<[ResourceRef]>;
918
937
  };
919
- "new"(inner: {
920
- algorithm: string;
921
- class: ContentBindingClass;
922
- hint?: SoftBinding;
923
- repositoryScore?: SimilarityScore;
924
- repository: string;
925
- fetchedFrom: string;
926
- }): {
938
+ "new"(v0: ResourceRef): {
927
939
  /**
928
940
  * @private
929
941
  * This field is private and should not be used, use `tag` instead.
930
942
  */
931
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
932
- readonly tag: RecoveryDiscovery_Tags.ByContent;
933
- readonly inner: Readonly<{
934
- algorithm: string;
935
- class: ContentBindingClass;
936
- hint?: SoftBinding;
937
- repositoryScore?: SimilarityScore;
938
- repository: string;
939
- fetchedFrom: string;
940
- }>;
943
+ readonly [uniffiTypeNameSymbol]: "UriOrResource";
944
+ readonly tag: UriOrResource_Tags.ResourceRef;
945
+ readonly inner: Readonly<[ResourceRef]>;
941
946
  };
942
947
  instanceOf(obj: any): obj is {
943
948
  /**
944
949
  * @private
945
950
  * This field is private and should not be used, use `tag` instead.
946
951
  */
947
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
948
- readonly tag: RecoveryDiscovery_Tags.ByContent;
949
- readonly inner: Readonly<{
950
- algorithm: string;
951
- class: ContentBindingClass;
952
- hint?: SoftBinding;
953
- repositoryScore?: SimilarityScore;
954
- repository: string;
955
- fetchedFrom: string;
956
- }>;
952
+ readonly [uniffiTypeNameSymbol]: "UriOrResource";
953
+ readonly tag: UriOrResource_Tags.ResourceRef;
954
+ readonly inner: Readonly<[ResourceRef]>;
957
955
  };
958
956
  };
959
- ByReference: {
960
- new (inner: {
961
- algorithm: string;
962
- class: ContentBindingClass;
963
- hint?: SoftBinding;
964
- repositoryScore?: SimilarityScore;
965
- repository: string;
966
- fetchedFrom: string;
967
- }): {
957
+ HashedUri: {
958
+ new (v0: HashedUri): {
968
959
  /**
969
960
  * @private
970
961
  * This field is private and should not be used, use `tag` instead.
971
962
  */
972
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
973
- readonly tag: RecoveryDiscovery_Tags.ByReference;
974
- readonly inner: Readonly<{
975
- algorithm: string;
976
- class: ContentBindingClass;
977
- hint?: SoftBinding;
978
- repositoryScore?: SimilarityScore;
979
- repository: string;
980
- fetchedFrom: string;
981
- }>;
963
+ readonly [uniffiTypeNameSymbol]: "UriOrResource";
964
+ readonly tag: UriOrResource_Tags.HashedUri;
965
+ readonly inner: Readonly<[HashedUri]>;
982
966
  };
983
- "new"(inner: {
984
- algorithm: string;
985
- class: ContentBindingClass;
986
- hint?: SoftBinding;
987
- repositoryScore?: SimilarityScore;
988
- repository: string;
989
- fetchedFrom: string;
990
- }): {
967
+ "new"(v0: HashedUri): {
991
968
  /**
992
969
  * @private
993
970
  * This field is private and should not be used, use `tag` instead.
994
971
  */
995
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
996
- readonly tag: RecoveryDiscovery_Tags.ByReference;
997
- readonly inner: Readonly<{
998
- algorithm: string;
999
- class: ContentBindingClass;
1000
- hint?: SoftBinding;
1001
- repositoryScore?: SimilarityScore;
1002
- repository: string;
1003
- fetchedFrom: string;
1004
- }>;
972
+ readonly [uniffiTypeNameSymbol]: "UriOrResource";
973
+ readonly tag: UriOrResource_Tags.HashedUri;
974
+ readonly inner: Readonly<[HashedUri]>;
1005
975
  };
1006
976
  instanceOf(obj: any): obj is {
1007
977
  /**
1008
978
  * @private
1009
979
  * This field is private and should not be used, use `tag` instead.
1010
980
  */
1011
- readonly [uniffiTypeNameSymbol]: "RecoveryDiscovery";
1012
- readonly tag: RecoveryDiscovery_Tags.ByReference;
1013
- readonly inner: Readonly<{
1014
- algorithm: string;
1015
- class: ContentBindingClass;
1016
- hint?: SoftBinding;
1017
- repositoryScore?: SimilarityScore;
1018
- repository: string;
1019
- fetchedFrom: string;
1020
- }>;
981
+ readonly [uniffiTypeNameSymbol]: "UriOrResource";
982
+ readonly tag: UriOrResource_Tags.HashedUri;
983
+ readonly inner: Readonly<[HashedUri]>;
1021
984
  };
1022
985
  };
1023
986
  }>;
1024
- export type RecoveryDiscovery = InstanceType<typeof RecoveryDiscovery['ByBinding' | 'ByContent' | 'ByReference']>;
1025
- export declare enum FingerprintCheck_Tags {
1026
- NotNeeded = "NotNeeded",
1027
- NothingToCompare = "NothingToCompare",
1028
- Unsupported = "Unsupported",
1029
- Indeterminate = "Indeterminate",
1030
- Compared = "Compared"
1031
- }
1032
987
  /**
1033
- * Whether the asset's own fingerprint backs up a manifest that a watermark led to.
1034
- *
1035
- * C2PA 2.4 1.2.2.3: a watermark can be lifted from one asset onto another, so a mark alone does
1036
- * not establish that the manifest it resolves to describes THIS asset. The mitigation the spec
1037
- * gives is to compare a fingerprint computed from the asset against the one the recovered
1038
- * manifest records, and `watermark-and-fingerprint` ends on exactly that comparison.
1039
- *
1040
- * Reported rather than enforced: a transcode legitimately shifts a fingerprint, so where the line
1041
- * falls is the relying party's policy, not this SDK's. What the SDK owes them is the measurement.
1042
- */
1043
- export declare const FingerprintCheck: Readonly<{
1044
- instanceOf: (obj: any) => obj is FingerprintCheck;
1045
- NotNeeded: {
1046
- new (): {
1047
- /**
1048
- * @private
1049
- * This field is private and should not be used, use `tag` instead.
1050
- */
1051
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1052
- readonly tag: FingerprintCheck_Tags.NotNeeded;
1053
- };
1054
- "new"(): {
1055
- /**
1056
- * @private
1057
- * This field is private and should not be used, use `tag` instead.
1058
- */
1059
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1060
- readonly tag: FingerprintCheck_Tags.NotNeeded;
1061
- };
1062
- instanceOf(obj: any): obj is {
1063
- /**
1064
- * @private
1065
- * This field is private and should not be used, use `tag` instead.
1066
- */
1067
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1068
- readonly tag: FingerprintCheck_Tags.NotNeeded;
1069
- };
1070
- };
1071
- NothingToCompare: {
1072
- new (): {
1073
- /**
1074
- * @private
1075
- * This field is private and should not be used, use `tag` instead.
1076
- */
1077
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1078
- readonly tag: FingerprintCheck_Tags.NothingToCompare;
1079
- };
1080
- "new"(): {
1081
- /**
1082
- * @private
1083
- * This field is private and should not be used, use `tag` instead.
1084
- */
1085
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1086
- readonly tag: FingerprintCheck_Tags.NothingToCompare;
1087
- };
1088
- instanceOf(obj: any): obj is {
1089
- /**
1090
- * @private
1091
- * This field is private and should not be used, use `tag` instead.
1092
- */
1093
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1094
- readonly tag: FingerprintCheck_Tags.NothingToCompare;
1095
- };
1096
- };
1097
- Unsupported: {
1098
- new (inner: {
1099
- algorithm: string;
1100
- }): {
1101
- /**
1102
- * @private
1103
- * This field is private and should not be used, use `tag` instead.
1104
- */
1105
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1106
- readonly tag: FingerprintCheck_Tags.Unsupported;
1107
- readonly inner: Readonly<{
1108
- algorithm: string;
1109
- }>;
1110
- };
1111
- "new"(inner: {
1112
- algorithm: string;
1113
- }): {
1114
- /**
1115
- * @private
1116
- * This field is private and should not be used, use `tag` instead.
1117
- */
1118
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1119
- readonly tag: FingerprintCheck_Tags.Unsupported;
1120
- readonly inner: Readonly<{
1121
- algorithm: string;
1122
- }>;
1123
- };
1124
- instanceOf(obj: any): obj is {
1125
- /**
1126
- * @private
1127
- * This field is private and should not be used, use `tag` instead.
1128
- */
1129
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1130
- readonly tag: FingerprintCheck_Tags.Unsupported;
1131
- readonly inner: Readonly<{
1132
- algorithm: string;
1133
- }>;
1134
- };
1135
- };
1136
- Indeterminate: {
1137
- new (): {
1138
- /**
1139
- * @private
1140
- * This field is private and should not be used, use `tag` instead.
1141
- */
1142
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1143
- readonly tag: FingerprintCheck_Tags.Indeterminate;
1144
- };
1145
- "new"(): {
1146
- /**
1147
- * @private
1148
- * This field is private and should not be used, use `tag` instead.
1149
- */
1150
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1151
- readonly tag: FingerprintCheck_Tags.Indeterminate;
1152
- };
1153
- instanceOf(obj: any): obj is {
1154
- /**
1155
- * @private
1156
- * This field is private and should not be used, use `tag` instead.
1157
- */
1158
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1159
- readonly tag: FingerprintCheck_Tags.Indeterminate;
1160
- };
1161
- };
1162
- Compared: {
1163
- new (inner: {
1164
- score: SimilarityScore;
1165
- }): {
1166
- /**
1167
- * @private
1168
- * This field is private and should not be used, use `tag` instead.
1169
- */
1170
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1171
- readonly tag: FingerprintCheck_Tags.Compared;
1172
- readonly inner: Readonly<{
1173
- score: SimilarityScore;
1174
- }>;
1175
- };
1176
- "new"(inner: {
1177
- score: SimilarityScore;
1178
- }): {
1179
- /**
1180
- * @private
1181
- * This field is private and should not be used, use `tag` instead.
1182
- */
1183
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1184
- readonly tag: FingerprintCheck_Tags.Compared;
1185
- readonly inner: Readonly<{
1186
- score: SimilarityScore;
1187
- }>;
1188
- };
1189
- instanceOf(obj: any): obj is {
1190
- /**
1191
- * @private
1192
- * This field is private and should not be used, use `tag` instead.
1193
- */
1194
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1195
- readonly tag: FingerprintCheck_Tags.Compared;
1196
- readonly inner: Readonly<{
1197
- score: SimilarityScore;
1198
- }>;
1199
- };
1200
- };
1201
- }>;
1202
- /**
1203
- * Whether the asset's own fingerprint backs up a manifest that a watermark led to.
1204
- *
1205
- * C2PA 2.4 1.2.2.3: a watermark can be lifted from one asset onto another, so a mark alone does
1206
- * not establish that the manifest it resolves to describes THIS asset. The mitigation the spec
1207
- * gives is to compare a fingerprint computed from the asset against the one the recovered
1208
- * manifest records, and `watermark-and-fingerprint` ends on exactly that comparison.
1209
- *
1210
- * Reported rather than enforced: a transcode legitimately shifts a fingerprint, so where the line
1211
- * falls is the relying party's policy, not this SDK's. What the SDK owes them is the measurement.
1212
- */
1213
- export type FingerprintCheck = InstanceType<typeof FingerprintCheck['NotNeeded' | 'NothingToCompare' | 'Unsupported' | 'Indeterminate' | 'Compared']>;
1214
- export declare enum CredentialOrigin_Tags {
1215
- Embedded = "Embedded",
1216
- Recovered = "Recovered"
1217
- }
1218
- /**
1219
- * FFI projection of the domain origin. The soft-binding DTO remains public and wire-shaped,
1220
- * while the domain value keeps its constructor invariant private.
1221
- */
1222
- export declare const CredentialOrigin: Readonly<{
1223
- instanceOf: (obj: any) => obj is CredentialOrigin;
1224
- Embedded: {
1225
- new (): {
1226
- /**
1227
- * @private
1228
- * This field is private and should not be used, use `tag` instead.
1229
- */
1230
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1231
- readonly tag: CredentialOrigin_Tags.Embedded;
1232
- };
1233
- "new"(): {
1234
- /**
1235
- * @private
1236
- * This field is private and should not be used, use `tag` instead.
1237
- */
1238
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1239
- readonly tag: CredentialOrigin_Tags.Embedded;
1240
- };
1241
- instanceOf(obj: any): obj is {
1242
- /**
1243
- * @private
1244
- * This field is private and should not be used, use `tag` instead.
1245
- */
1246
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1247
- readonly tag: CredentialOrigin_Tags.Embedded;
1248
- };
1249
- };
1250
- Recovered: {
1251
- new (inner: {
1252
- discoveries: Array<RecoveryDiscovery>;
1253
- fingerprintCheck: FingerprintCheck;
1254
- }): {
1255
- /**
1256
- * @private
1257
- * This field is private and should not be used, use `tag` instead.
1258
- */
1259
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1260
- readonly tag: CredentialOrigin_Tags.Recovered;
1261
- readonly inner: Readonly<{
1262
- discoveries: Array<RecoveryDiscovery>;
1263
- fingerprintCheck: FingerprintCheck;
1264
- }>;
1265
- };
1266
- "new"(inner: {
1267
- discoveries: Array<RecoveryDiscovery>;
1268
- fingerprintCheck: FingerprintCheck;
1269
- }): {
1270
- /**
1271
- * @private
1272
- * This field is private and should not be used, use `tag` instead.
1273
- */
1274
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1275
- readonly tag: CredentialOrigin_Tags.Recovered;
1276
- readonly inner: Readonly<{
1277
- discoveries: Array<RecoveryDiscovery>;
1278
- fingerprintCheck: FingerprintCheck;
1279
- }>;
1280
- };
1281
- instanceOf(obj: any): obj is {
1282
- /**
1283
- * @private
1284
- * This field is private and should not be used, use `tag` instead.
1285
- */
1286
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1287
- readonly tag: CredentialOrigin_Tags.Recovered;
1288
- readonly inner: Readonly<{
1289
- discoveries: Array<RecoveryDiscovery>;
1290
- fingerprintCheck: FingerprintCheck;
1291
- }>;
1292
- };
1293
- };
1294
- }>;
1295
- /**
1296
- * FFI projection of the domain origin. The soft-binding DTO remains public and wire-shaped,
1297
- * while the domain value keeps its constructor invariant private.
1298
- */
1299
- export type CredentialOrigin = InstanceType<typeof CredentialOrigin['Embedded' | 'Recovered']>;
1300
- /**
1301
- * Assertions in C2PA can be stored in several formats
1302
- */
1303
- export declare enum ManifestAssertionKind {
1304
- Cbor = 0,
1305
- Json = 1,
1306
- Binary = 2,
1307
- Uri = 3
1308
- }
1309
- /**
1310
- * A labeled container for an Assertion value in a Manifest
1311
- */
1312
- export type ManifestAssertion = {
1313
- /**
1314
- * True if this assertion is attributed to the signer
1315
- * This maps to a created vs a gathered assertion. (defaults to false)
1316
- */
1317
- created?: boolean;
1318
- /**
1319
- * The data of the assertion as Value
1320
- */
1321
- data: JsonValue;
1322
- /**
1323
- * There can be more than one assertion for any label
1324
- */
1325
- instance?: number;
1326
- /**
1327
- * The [ManifestAssertionKind] for this assertion (as stored in c2pa content)
1328
- */
1329
- kind?: ManifestAssertionKind;
1330
- /**
1331
- * An assertion label in reverse domain format
1332
- */
1333
- label: string;
1334
- };
1335
- /**
1336
- * Generated factory for {@link ManifestAssertion} record objects.
1337
- */
1338
- export declare const ManifestAssertion: Readonly<{
1339
- create: (partial: Partial<ManifestAssertion> & Required<Omit<ManifestAssertion, "created" | "instance" | "kind">>) => ManifestAssertion;
1340
- new: (partial: Partial<ManifestAssertion> & Required<Omit<ManifestAssertion, "created" | "instance" | "kind">>) => ManifestAssertion;
1341
- defaults: () => Partial<ManifestAssertion>;
1342
- }>;
1343
- /**
1344
- * A reference to a resource to be used in JSON serialization.
1345
- *
1346
- * The underlying data can be read as a stream via [`Reader::resource_to_stream`][crate::Reader::resource_to_stream].
1347
- */
1348
- export type ResourceRef = {
1349
- /**
1350
- * The algorithm used to hash the resource (if applicable).
1351
- */
1352
- alg?: string;
1353
- /**
1354
- * More detailed data types as defined in the C2PA spec.
1355
- */
1356
- dataTypes?: Array<AssetType>;
1357
- /**
1358
- * The mime type of the referenced resource.
1359
- */
1360
- format: string;
1361
- /**
1362
- * The hash of the resource (if applicable).
1363
- */
1364
- hash?: string;
1365
- /**
1366
- * A URI that identifies the resource as referenced from the manifest.
1367
- *
1368
- * This may be a JUMBF URI, a file path, a URL or any other string.
1369
- * Relative JUMBF URIs will be resolved with the manifest label.
1370
- * Relative file paths will be resolved with the base path if provided.
1371
- */
1372
- identifier: string;
1373
- };
1374
- /**
1375
- * Generated factory for {@link ResourceRef} record objects.
1376
- */
1377
- export declare const ResourceRef: Readonly<{
1378
- create: (partial: Partial<ResourceRef> & Required<Omit<ResourceRef, "alg" | "dataTypes" | "hash">>) => ResourceRef;
1379
- new: (partial: Partial<ResourceRef> & Required<Omit<ResourceRef, "alg" | "dataTypes" | "hash">>) => ResourceRef;
1380
- defaults: () => Partial<ResourceRef>;
1381
- }>;
1382
- export declare enum UriOrResource_Tags {
1383
- ResourceRef = "ResourceRef",
1384
- HashedUri = "HashedUri"
1385
- }
1386
- /**
1387
- * `UriOrResource`
1388
- */
1389
- export declare const UriOrResource: Readonly<{
1390
- instanceOf: (obj: any) => obj is UriOrResource;
1391
- ResourceRef: {
1392
- new (v0: ResourceRef): {
1393
- /**
1394
- * @private
1395
- * This field is private and should not be used, use `tag` instead.
1396
- */
1397
- readonly [uniffiTypeNameSymbol]: "UriOrResource";
1398
- readonly tag: UriOrResource_Tags.ResourceRef;
1399
- readonly inner: Readonly<[ResourceRef]>;
1400
- };
1401
- "new"(v0: ResourceRef): {
1402
- /**
1403
- * @private
1404
- * This field is private and should not be used, use `tag` instead.
1405
- */
1406
- readonly [uniffiTypeNameSymbol]: "UriOrResource";
1407
- readonly tag: UriOrResource_Tags.ResourceRef;
1408
- readonly inner: Readonly<[ResourceRef]>;
1409
- };
1410
- instanceOf(obj: any): obj is {
1411
- /**
1412
- * @private
1413
- * This field is private and should not be used, use `tag` instead.
1414
- */
1415
- readonly [uniffiTypeNameSymbol]: "UriOrResource";
1416
- readonly tag: UriOrResource_Tags.ResourceRef;
1417
- readonly inner: Readonly<[ResourceRef]>;
1418
- };
1419
- };
1420
- HashedUri: {
1421
- new (v0: HashedUri): {
1422
- /**
1423
- * @private
1424
- * This field is private and should not be used, use `tag` instead.
1425
- */
1426
- readonly [uniffiTypeNameSymbol]: "UriOrResource";
1427
- readonly tag: UriOrResource_Tags.HashedUri;
1428
- readonly inner: Readonly<[HashedUri]>;
1429
- };
1430
- "new"(v0: HashedUri): {
1431
- /**
1432
- * @private
1433
- * This field is private and should not be used, use `tag` instead.
1434
- */
1435
- readonly [uniffiTypeNameSymbol]: "UriOrResource";
1436
- readonly tag: UriOrResource_Tags.HashedUri;
1437
- readonly inner: Readonly<[HashedUri]>;
1438
- };
1439
- instanceOf(obj: any): obj is {
1440
- /**
1441
- * @private
1442
- * This field is private and should not be used, use `tag` instead.
1443
- */
1444
- readonly [uniffiTypeNameSymbol]: "UriOrResource";
1445
- readonly tag: UriOrResource_Tags.HashedUri;
1446
- readonly inner: Readonly<[HashedUri]>;
1447
- };
1448
- };
1449
- }>;
1450
- /**
1451
- * `UriOrResource`
988
+ * `UriOrResource`
1452
989
  */
1453
990
  export type UriOrResource = InstanceType<typeof UriOrResource['ResourceRef' | 'HashedUri']>;
1454
991
  /**
@@ -1842,322 +1379,1028 @@ export type Manifest = {
1842
1379
  vendor?: string;
1843
1380
  };
1844
1381
  /**
1845
- * Generated factory for {@link Manifest} record objects.
1382
+ * Generated factory for {@link Manifest} record objects.
1383
+ */
1384
+ export declare const Manifest: Readonly<{
1385
+ create: (partial: Partial<Manifest> & Required<Omit<Manifest, "claimGenerator" | "claimGeneratorInfo" | "claimVersion" | "credentials" | "format" | "label" | "metadata" | "redactions" | "signatureInfo" | "thumbnail" | "title" | "vendor">>) => Manifest;
1386
+ new: (partial: Partial<Manifest> & Required<Omit<Manifest, "claimGenerator" | "claimGeneratorInfo" | "claimVersion" | "credentials" | "format" | "label" | "metadata" | "redactions" | "signatureInfo" | "thumbnail" | "title" | "vendor">>) => Manifest;
1387
+ defaults: () => Partial<Manifest>;
1388
+ }>;
1389
+ /**
1390
+ * Represents the levels of assurance a manifest store achieves when evaluated against the C2PA
1391
+ * specifications structural, cryptographic, and trust requirements.
1392
+ *
1393
+ * See [Validation states - C2PA Technical Specification](https://spec.c2pa.org/specifications/specifications/2.3/specs/C2PA_Specification.html#_validation_states).
1394
+ */
1395
+ export declare enum ValidationState {
1396
+ /**
1397
+ * The manifest store fails to meet ValidationState::WellFormed requirements, meaning it cannot
1398
+ * even be parsed or its basic structure is non-compliant.
1399
+ *
1400
+ * This case may also occur if validation is disabled in the SDK.
1401
+ */
1402
+ Invalid = 0,
1403
+ /**
1404
+ * The manifest store is well-formed and the cryptographic integrity checks succeed.
1405
+ *
1406
+ * See [Valid Manifest - C2PA Technical Specification](https://spec.c2pa.org/specifications/specifications/2.3/specs/C2PA_Specification.html#_valid_manifest).
1407
+ */
1408
+ Valid = 1,
1409
+ /**
1410
+ * The manifest store is valid and signed by a certificate that chains up to a trusted root or known
1411
+ * authority in the trust list.
1412
+ *
1413
+ * See [Trusted Manifest - C2PA Technical Specification](https://spec.c2pa.org/specifications/specifications/2.3/specs/C2PA_Specification.html#_trusted_manifest).
1414
+ */
1415
+ Trusted = 2
1416
+ }
1417
+ /**
1418
+ * Use a Reader to read and validate a manifest store.
1419
+ */
1420
+ export type ManifestStore = {
1421
+ /**
1422
+ * A label for the active (most recent) manifest in the store
1423
+ */
1424
+ activeManifest?: string;
1425
+ /**
1426
+ * A HashMap of Manifests
1427
+ */
1428
+ manifests: Map<string, Manifest>;
1429
+ /**
1430
+ * ValidationStatus generated when loading the ManifestStore from an asset
1431
+ */
1432
+ validationResults?: ValidationResults;
1433
+ /**
1434
+ * The validation state of the manifest store
1435
+ */
1436
+ validationState?: ValidationState;
1437
+ /**
1438
+ * ValidationStatus generated when loading the ManifestStore from an asset
1439
+ */
1440
+ validationStatus?: Array<ValidationStatus>;
1441
+ };
1442
+ /**
1443
+ * Generated factory for {@link ManifestStore} record objects.
1444
+ */
1445
+ export declare const ManifestStore: Readonly<{
1446
+ create: (partial: Partial<ManifestStore> & Required<Omit<ManifestStore, "activeManifest" | "validationResults" | "validationState" | "validationStatus">>) => ManifestStore;
1447
+ new: (partial: Partial<ManifestStore> & Required<Omit<ManifestStore, "activeManifest" | "validationResults" | "validationState" | "validationStatus">>) => ManifestStore;
1448
+ defaults: () => Partial<ManifestStore>;
1449
+ }>;
1450
+ /**
1451
+ * The value a content query was hinted with, under its own algorithm.
1452
+ */
1453
+ export type Hint = {
1454
+ alg: string;
1455
+ value: ArrayBuffer;
1456
+ };
1457
+ /**
1458
+ * Generated factory for {@link Hint} record objects.
1459
+ */
1460
+ export declare const Hint: Readonly<{
1461
+ create: (partial: Partial<Hint> & Required<Omit<Hint, never>>) => Hint;
1462
+ new: (partial: Partial<Hint> & Required<Omit<Hint, never>>) => Hint;
1463
+ defaults: () => Partial<Hint>;
1464
+ }>;
1465
+ export declare enum DiscoveryVia_Tags {
1466
+ ByBinding = "ByBinding",
1467
+ ByContent = "ByContent",
1468
+ ByReference = "ByReference"
1469
+ }
1470
+ /**
1471
+ * The Soft Binding Resolution API route a discovery came through.
1472
+ */
1473
+ export declare const DiscoveryVia: Readonly<{
1474
+ instanceOf: (obj: any) => obj is DiscoveryVia;
1475
+ ByBinding: {
1476
+ new (inner: {
1477
+ value: ArrayBuffer;
1478
+ }): {
1479
+ /**
1480
+ * @private
1481
+ * This field is private and should not be used, use `tag` instead.
1482
+ */
1483
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1484
+ readonly tag: DiscoveryVia_Tags.ByBinding;
1485
+ readonly inner: Readonly<{
1486
+ value: ArrayBuffer;
1487
+ }>;
1488
+ };
1489
+ "new"(inner: {
1490
+ value: ArrayBuffer;
1491
+ }): {
1492
+ /**
1493
+ * @private
1494
+ * This field is private and should not be used, use `tag` instead.
1495
+ */
1496
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1497
+ readonly tag: DiscoveryVia_Tags.ByBinding;
1498
+ readonly inner: Readonly<{
1499
+ value: ArrayBuffer;
1500
+ }>;
1501
+ };
1502
+ instanceOf(obj: any): obj is {
1503
+ /**
1504
+ * @private
1505
+ * This field is private and should not be used, use `tag` instead.
1506
+ */
1507
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1508
+ readonly tag: DiscoveryVia_Tags.ByBinding;
1509
+ readonly inner: Readonly<{
1510
+ value: ArrayBuffer;
1511
+ }>;
1512
+ };
1513
+ };
1514
+ ByContent: {
1515
+ new (inner: {
1516
+ hint?: Hint;
1517
+ }): {
1518
+ /**
1519
+ * @private
1520
+ * This field is private and should not be used, use `tag` instead.
1521
+ */
1522
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1523
+ readonly tag: DiscoveryVia_Tags.ByContent;
1524
+ readonly inner: Readonly<{
1525
+ hint?: Hint;
1526
+ }>;
1527
+ };
1528
+ "new"(inner: {
1529
+ hint?: Hint;
1530
+ }): {
1531
+ /**
1532
+ * @private
1533
+ * This field is private and should not be used, use `tag` instead.
1534
+ */
1535
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1536
+ readonly tag: DiscoveryVia_Tags.ByContent;
1537
+ readonly inner: Readonly<{
1538
+ hint?: Hint;
1539
+ }>;
1540
+ };
1541
+ instanceOf(obj: any): obj is {
1542
+ /**
1543
+ * @private
1544
+ * This field is private and should not be used, use `tag` instead.
1545
+ */
1546
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1547
+ readonly tag: DiscoveryVia_Tags.ByContent;
1548
+ readonly inner: Readonly<{
1549
+ hint?: Hint;
1550
+ }>;
1551
+ };
1552
+ };
1553
+ ByReference: {
1554
+ new (inner: {
1555
+ hint?: Hint;
1556
+ }): {
1557
+ /**
1558
+ * @private
1559
+ * This field is private and should not be used, use `tag` instead.
1560
+ */
1561
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1562
+ readonly tag: DiscoveryVia_Tags.ByReference;
1563
+ readonly inner: Readonly<{
1564
+ hint?: Hint;
1565
+ }>;
1566
+ };
1567
+ "new"(inner: {
1568
+ hint?: Hint;
1569
+ }): {
1570
+ /**
1571
+ * @private
1572
+ * This field is private and should not be used, use `tag` instead.
1573
+ */
1574
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1575
+ readonly tag: DiscoveryVia_Tags.ByReference;
1576
+ readonly inner: Readonly<{
1577
+ hint?: Hint;
1578
+ }>;
1579
+ };
1580
+ instanceOf(obj: any): obj is {
1581
+ /**
1582
+ * @private
1583
+ * This field is private and should not be used, use `tag` instead.
1584
+ */
1585
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1586
+ readonly tag: DiscoveryVia_Tags.ByReference;
1587
+ readonly inner: Readonly<{
1588
+ hint?: Hint;
1589
+ }>;
1590
+ };
1591
+ };
1592
+ }>;
1593
+ /**
1594
+ * The Soft Binding Resolution API route a discovery came through.
1846
1595
  */
1847
- export declare const Manifest: Readonly<{
1848
- create: (partial: Partial<Manifest> & Required<Omit<Manifest, "claimGenerator" | "claimGeneratorInfo" | "claimVersion" | "credentials" | "format" | "label" | "metadata" | "redactions" | "signatureInfo" | "thumbnail" | "title" | "vendor">>) => Manifest;
1849
- new: (partial: Partial<Manifest> & Required<Omit<Manifest, "claimGenerator" | "claimGeneratorInfo" | "claimVersion" | "credentials" | "format" | "label" | "metadata" | "redactions" | "signatureInfo" | "thumbnail" | "title" | "vendor">>) => Manifest;
1850
- defaults: () => Partial<Manifest>;
1851
- }>;
1596
+ export type DiscoveryVia = InstanceType<typeof DiscoveryVia['ByBinding' | 'ByContent' | 'ByReference']>;
1852
1597
  /**
1853
- * Represents the levels of assurance a manifest store achieves when evaluated against the C2PA
1854
- * specifications structural, cryptographic, and trust requirements.
1855
- *
1856
- * See [Validation states - C2PA Technical Specification](https://spec.c2pa.org/specifications/specifications/2.3/specs/C2PA_Specification.html#_validation_states).
1598
+ * The C2PA list's `type` of a soft binding algorithm.
1857
1599
  */
1858
- export declare enum ValidationState {
1859
- /**
1860
- * The manifest store fails to meet ValidationState::WellFormed requirements, meaning it cannot
1861
- * even be parsed or its basic structure is non-compliant.
1862
- *
1863
- * This case may also occur if validation is disabled in the SDK.
1864
- */
1865
- Invalid = 0,
1866
- /**
1867
- * The manifest store is well-formed and the cryptographic integrity checks succeed.
1868
- *
1869
- * See [Valid Manifest - C2PA Technical Specification](https://spec.c2pa.org/specifications/specifications/2.3/specs/C2PA_Specification.html#_valid_manifest).
1870
- */
1871
- Valid = 1,
1872
- /**
1873
- * The manifest store is valid and signed by a certificate that chains up to a trusted root or known
1874
- * authority in the trust list.
1875
- *
1876
- * See [Trusted Manifest - C2PA Technical Specification](https://spec.c2pa.org/specifications/specifications/2.3/specs/C2PA_Specification.html#_trusted_manifest).
1877
- */
1878
- Trusted = 2
1600
+ export declare enum SoftBindingType {
1601
+ Fingerprint = 0,
1602
+ Watermark = 1
1879
1603
  }
1880
1604
  /**
1881
- * Use a Reader to read and validate a manifest store.
1605
+ * Typealias from the type name used in the UDL file to the builtin type. This
1606
+ * is needed because the UDL type name is used in function/method signatures.
1882
1607
  */
1883
- export type ManifestStore = {
1884
- /**
1885
- * A label for the active (most recent) manifest in the store
1886
- */
1887
- activeManifest?: string;
1888
- /**
1889
- * A HashMap of Manifests
1890
- */
1891
- manifests: Map<string, Manifest>;
1892
- /**
1893
- * ValidationStatus generated when loading the ManifestStore from an asset
1894
- */
1895
- validationResults?: ValidationResults;
1896
- /**
1897
- * The validation state of the manifest store
1898
- */
1899
- validationState?: ValidationState;
1608
+ export type SimilarityScore = number;
1609
+ /**
1610
+ * One query that located a recovered credential: how it was asked, under which algorithm, and
1611
+ * where the manifest came from.
1612
+ */
1613
+ export type Discovery = {
1614
+ via: DiscoveryVia;
1615
+ alg: string;
1616
+ type: SoftBindingType;
1900
1617
  /**
1901
- * ValidationStatus generated when loading the ManifestStore from an asset
1618
+ * The repository's `similarityScore`, 0-100.
1902
1619
  */
1903
- validationStatus?: Array<ValidationStatus>;
1620
+ score?: SimilarityScore;
1621
+ repository: string;
1622
+ endpoint?: string;
1904
1623
  };
1905
1624
  /**
1906
- * Generated factory for {@link ManifestStore} record objects.
1625
+ * Generated factory for {@link Discovery} record objects.
1907
1626
  */
1908
- export declare const ManifestStore: Readonly<{
1909
- create: (partial: Partial<ManifestStore> & Required<Omit<ManifestStore, "activeManifest" | "validationResults" | "validationState" | "validationStatus">>) => ManifestStore;
1910
- new: (partial: Partial<ManifestStore> & Required<Omit<ManifestStore, "activeManifest" | "validationResults" | "validationState" | "validationStatus">>) => ManifestStore;
1911
- defaults: () => Partial<ManifestStore>;
1627
+ export declare const Discovery: Readonly<{
1628
+ create: (partial: Partial<Discovery> & Required<Omit<Discovery, "endpoint" | "score">>) => Discovery;
1629
+ new: (partial: Partial<Discovery> & Required<Omit<Discovery, "endpoint" | "score">>) => Discovery;
1630
+ defaults: () => Partial<Discovery>;
1631
+ }>;
1632
+ export declare enum FingerprintCheck_Tags {
1633
+ NotNeeded = "NotNeeded",
1634
+ Missing = "Missing",
1635
+ Unsupported = "Unsupported",
1636
+ Indeterminate = "Indeterminate",
1637
+ Compared = "Compared"
1638
+ }
1639
+ /**
1640
+ * Whether the asset's own fingerprint backs up a manifest that a watermark led to.
1641
+ *
1642
+ * C2PA 2.4 1.2.2.3: a watermark can be lifted from one asset onto another, so a mark alone does
1643
+ * not establish that the manifest it resolves to describes THIS asset. The mitigation the spec
1644
+ * gives is to compare a fingerprint computed from the asset against the one the recovered
1645
+ * manifest records, and `watermark-and-fingerprint` ends on exactly that comparison.
1646
+ *
1647
+ * Reported rather than enforced: a transcode legitimately shifts a fingerprint, so where the line
1648
+ * falls is the relying party's policy, not this SDK's. What the SDK owes them is the measurement.
1649
+ */
1650
+ export declare const FingerprintCheck: Readonly<{
1651
+ instanceOf: (obj: any) => obj is FingerprintCheck;
1652
+ NotNeeded: {
1653
+ new (): {
1654
+ /**
1655
+ * @private
1656
+ * This field is private and should not be used, use `tag` instead.
1657
+ */
1658
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1659
+ readonly tag: FingerprintCheck_Tags.NotNeeded;
1660
+ };
1661
+ "new"(): {
1662
+ /**
1663
+ * @private
1664
+ * This field is private and should not be used, use `tag` instead.
1665
+ */
1666
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1667
+ readonly tag: FingerprintCheck_Tags.NotNeeded;
1668
+ };
1669
+ instanceOf(obj: any): obj is {
1670
+ /**
1671
+ * @private
1672
+ * This field is private and should not be used, use `tag` instead.
1673
+ */
1674
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1675
+ readonly tag: FingerprintCheck_Tags.NotNeeded;
1676
+ };
1677
+ };
1678
+ Missing: {
1679
+ new (): {
1680
+ /**
1681
+ * @private
1682
+ * This field is private and should not be used, use `tag` instead.
1683
+ */
1684
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1685
+ readonly tag: FingerprintCheck_Tags.Missing;
1686
+ };
1687
+ "new"(): {
1688
+ /**
1689
+ * @private
1690
+ * This field is private and should not be used, use `tag` instead.
1691
+ */
1692
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1693
+ readonly tag: FingerprintCheck_Tags.Missing;
1694
+ };
1695
+ instanceOf(obj: any): obj is {
1696
+ /**
1697
+ * @private
1698
+ * This field is private and should not be used, use `tag` instead.
1699
+ */
1700
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1701
+ readonly tag: FingerprintCheck_Tags.Missing;
1702
+ };
1703
+ };
1704
+ Unsupported: {
1705
+ new (inner: {
1706
+ alg: string;
1707
+ }): {
1708
+ /**
1709
+ * @private
1710
+ * This field is private and should not be used, use `tag` instead.
1711
+ */
1712
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1713
+ readonly tag: FingerprintCheck_Tags.Unsupported;
1714
+ readonly inner: Readonly<{
1715
+ alg: string;
1716
+ }>;
1717
+ };
1718
+ "new"(inner: {
1719
+ alg: string;
1720
+ }): {
1721
+ /**
1722
+ * @private
1723
+ * This field is private and should not be used, use `tag` instead.
1724
+ */
1725
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1726
+ readonly tag: FingerprintCheck_Tags.Unsupported;
1727
+ readonly inner: Readonly<{
1728
+ alg: string;
1729
+ }>;
1730
+ };
1731
+ instanceOf(obj: any): obj is {
1732
+ /**
1733
+ * @private
1734
+ * This field is private and should not be used, use `tag` instead.
1735
+ */
1736
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1737
+ readonly tag: FingerprintCheck_Tags.Unsupported;
1738
+ readonly inner: Readonly<{
1739
+ alg: string;
1740
+ }>;
1741
+ };
1742
+ };
1743
+ Indeterminate: {
1744
+ new (): {
1745
+ /**
1746
+ * @private
1747
+ * This field is private and should not be used, use `tag` instead.
1748
+ */
1749
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1750
+ readonly tag: FingerprintCheck_Tags.Indeterminate;
1751
+ };
1752
+ "new"(): {
1753
+ /**
1754
+ * @private
1755
+ * This field is private and should not be used, use `tag` instead.
1756
+ */
1757
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1758
+ readonly tag: FingerprintCheck_Tags.Indeterminate;
1759
+ };
1760
+ instanceOf(obj: any): obj is {
1761
+ /**
1762
+ * @private
1763
+ * This field is private and should not be used, use `tag` instead.
1764
+ */
1765
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1766
+ readonly tag: FingerprintCheck_Tags.Indeterminate;
1767
+ };
1768
+ };
1769
+ Compared: {
1770
+ new (inner: {
1771
+ score: SimilarityScore;
1772
+ }): {
1773
+ /**
1774
+ * @private
1775
+ * This field is private and should not be used, use `tag` instead.
1776
+ */
1777
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1778
+ readonly tag: FingerprintCheck_Tags.Compared;
1779
+ readonly inner: Readonly<{
1780
+ score: SimilarityScore;
1781
+ }>;
1782
+ };
1783
+ "new"(inner: {
1784
+ score: SimilarityScore;
1785
+ }): {
1786
+ /**
1787
+ * @private
1788
+ * This field is private and should not be used, use `tag` instead.
1789
+ */
1790
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1791
+ readonly tag: FingerprintCheck_Tags.Compared;
1792
+ readonly inner: Readonly<{
1793
+ score: SimilarityScore;
1794
+ }>;
1795
+ };
1796
+ instanceOf(obj: any): obj is {
1797
+ /**
1798
+ * @private
1799
+ * This field is private and should not be used, use `tag` instead.
1800
+ */
1801
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1802
+ readonly tag: FingerprintCheck_Tags.Compared;
1803
+ readonly inner: Readonly<{
1804
+ score: SimilarityScore;
1805
+ }>;
1806
+ };
1807
+ };
1912
1808
  }>;
1913
1809
  /**
1914
- * Whether the manifest's hard binding holds over the bytes this verify read.
1810
+ * Whether the asset's own fingerprint backs up a manifest that a watermark led to.
1915
1811
  *
1916
- * c2pa folds a hash mismatch into `validation_state == Invalid` with every other failure. A
1917
- * manifest recovered through a soft binding is validated against a transcode or a later edit,
1918
- * so a mismatch is the one failure it is expected to carry; naming it lets a caller tell "for
1919
- * other bytes" from "broken" without reading status codes.
1812
+ * C2PA 2.4 1.2.2.3: a watermark can be lifted from one asset onto another, so a mark alone does
1813
+ * not establish that the manifest it resolves to describes THIS asset. The mitigation the spec
1814
+ * gives is to compare a fingerprint computed from the asset against the one the recovered
1815
+ * manifest records, and `watermark-and-fingerprint` ends on exactly that comparison.
1816
+ *
1817
+ * Reported rather than enforced: a transcode legitimately shifts a fingerprint, so where the line
1818
+ * falls is the relying party's policy, not this SDK's. What the SDK owes them is the measurement.
1920
1819
  */
1921
- export declare enum HardBinding {
1922
- /**
1923
- * No data, box, BMFF or collection hash failed against these bytes.
1924
- */
1925
- Match = 0,
1926
- /**
1927
- * A hash mismatch is among the active manifest's failures: the manifest describes other
1928
- * bytes. Whether it is otherwise authentic is its remaining statuses.
1929
- */
1930
- Mismatch = 1
1820
+ export type FingerprintCheck = InstanceType<typeof FingerprintCheck['NotNeeded' | 'Missing' | 'Unsupported' | 'Indeterminate' | 'Compared']>;
1821
+ export declare enum CredentialOrigin_Tags {
1822
+ Embedded = "Embedded",
1823
+ Recovered = "Recovered"
1931
1824
  }
1932
1825
  /**
1933
- * The re-sign chain, read from the validated stores themselves: C2PA 2.4 18.16.11 copies a
1934
- * `parentOf` ingredient's manifest into its successor's store, so a link here was signed by the
1935
- * successor. A repository's ordering is a hint; this is the evidence.
1826
+ * Where a credential came from: embedded in the asset, or recovered from a repository.
1936
1827
  */
1937
- export type Lineage = {
1938
- /**
1939
- * Active manifest labels this credential's active manifest opened as a `parentOf`
1940
- * ingredient, whether or not they were returned by this verify.
1941
- */
1942
- supersedes: Array<string>;
1943
- /**
1944
- * Active manifest labels of the other credentials in this result that name this one in
1945
- * their `supersedes`.
1946
- */
1947
- supersededBy: Array<string>;
1948
- };
1828
+ export declare const CredentialOrigin: Readonly<{
1829
+ instanceOf: (obj: any) => obj is CredentialOrigin;
1830
+ Embedded: {
1831
+ new (): {
1832
+ /**
1833
+ * @private
1834
+ * This field is private and should not be used, use `tag` instead.
1835
+ */
1836
+ readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1837
+ readonly tag: CredentialOrigin_Tags.Embedded;
1838
+ };
1839
+ "new"(): {
1840
+ /**
1841
+ * @private
1842
+ * This field is private and should not be used, use `tag` instead.
1843
+ */
1844
+ readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1845
+ readonly tag: CredentialOrigin_Tags.Embedded;
1846
+ };
1847
+ instanceOf(obj: any): obj is {
1848
+ /**
1849
+ * @private
1850
+ * This field is private and should not be used, use `tag` instead.
1851
+ */
1852
+ readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1853
+ readonly tag: CredentialOrigin_Tags.Embedded;
1854
+ };
1855
+ };
1856
+ Recovered: {
1857
+ new (inner: {
1858
+ discoveries: Array<Discovery>;
1859
+ fingerprintCheck: FingerprintCheck;
1860
+ }): {
1861
+ /**
1862
+ * @private
1863
+ * This field is private and should not be used, use `tag` instead.
1864
+ */
1865
+ readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1866
+ readonly tag: CredentialOrigin_Tags.Recovered;
1867
+ readonly inner: Readonly<{
1868
+ discoveries: Array<Discovery>;
1869
+ fingerprintCheck: FingerprintCheck;
1870
+ }>;
1871
+ };
1872
+ "new"(inner: {
1873
+ discoveries: Array<Discovery>;
1874
+ fingerprintCheck: FingerprintCheck;
1875
+ }): {
1876
+ /**
1877
+ * @private
1878
+ * This field is private and should not be used, use `tag` instead.
1879
+ */
1880
+ readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1881
+ readonly tag: CredentialOrigin_Tags.Recovered;
1882
+ readonly inner: Readonly<{
1883
+ discoveries: Array<Discovery>;
1884
+ fingerprintCheck: FingerprintCheck;
1885
+ }>;
1886
+ };
1887
+ instanceOf(obj: any): obj is {
1888
+ /**
1889
+ * @private
1890
+ * This field is private and should not be used, use `tag` instead.
1891
+ */
1892
+ readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1893
+ readonly tag: CredentialOrigin_Tags.Recovered;
1894
+ readonly inner: Readonly<{
1895
+ discoveries: Array<Discovery>;
1896
+ fingerprintCheck: FingerprintCheck;
1897
+ }>;
1898
+ };
1899
+ };
1900
+ }>;
1949
1901
  /**
1950
- * Generated factory for {@link Lineage} record objects.
1902
+ * Where a credential came from: embedded in the asset, or recovered from a repository.
1951
1903
  */
1952
- export declare const Lineage: Readonly<{
1953
- create: (partial: Partial<Lineage> & Required<Omit<Lineage, never>>) => Lineage;
1954
- new: (partial: Partial<Lineage> & Required<Omit<Lineage, never>>) => Lineage;
1955
- defaults: () => Partial<Lineage>;
1956
- }>;
1904
+ export type CredentialOrigin = InstanceType<typeof CredentialOrigin['Embedded' | 'Recovered']>;
1957
1905
  /**
1958
- * One `verify` result: the c2pa manifest store, where it came from, and whether its hard
1959
- * binding holds over the bytes read. The recovered origin carries the same `SoftBinding` record
1960
- * `Binder.derive` returns, so a derived binding and a recovering one are one type.
1906
+ * A canonical gRPC/Connect status code: the coarse, closed failure class.
1961
1907
  */
1962
- export type Credential = {
1963
- /**
1964
- * The bytes behind every thumbnail the manifests reference, by that reference's
1965
- * `identifier`: each manifest's claim thumbnail and each ingredient's. The manifests state
1966
- * identifiers and no images, so this is what a chain draws from.
1967
- */
1968
- thumbnails: Map<string, ArrayBuffer>;
1969
- /**
1970
- * Where this credential came from. See [`asset::CredentialOrigin`].
1971
- */
1972
- origin: CredentialOrigin;
1908
+ export declare enum Code {
1909
+ Canceled = 0,
1910
+ Unknown = 1,
1911
+ InvalidArgument = 2,
1912
+ DeadlineExceeded = 3,
1913
+ NotFound = 4,
1914
+ AlreadyExists = 5,
1915
+ PermissionDenied = 6,
1916
+ ResourceExhausted = 7,
1917
+ FailedPrecondition = 8,
1918
+ Aborted = 9,
1919
+ OutOfRange = 10,
1920
+ Unimplemented = 11,
1921
+ Internal = 12,
1922
+ Unavailable = 13,
1923
+ DataLoss = 14,
1924
+ Unauthenticated = 15
1925
+ }
1926
+ /**
1927
+ * One `google.rpc.BadRequest.FieldViolation`: a request field that failed a constraint.
1928
+ */
1929
+ export type FieldViolation = {
1973
1930
  /**
1974
- * The c2pa manifest store: its manifests by label, the active one, and the
1975
- * validation state and results.
1931
+ * The offending field: rooted at the call's argument when an SDK refuses it
1932
+ * (`options.soft_bindings[1].alg`), at the request when a service does
1933
+ * (`provenance.actions[0].label`).
1976
1934
  */
1977
- manifest: ManifestStore;
1935
+ field: string;
1978
1936
  /**
1979
- * Whether the manifest's hard binding holds over the bytes this verify read.
1937
+ * Human-readable explanation of the violation.
1980
1938
  */
1981
- hardBinding: HardBinding;
1939
+ description: string;
1982
1940
  /**
1983
- * Where this credential sits among the others returned. See [`asset::Lineage`].
1941
+ * The rule that failed, such as `string.min_len` or `alg.unlisted`: the stable branch key.
1984
1942
  */
1985
- lineage: Lineage;
1943
+ reason: string;
1986
1944
  };
1987
1945
  /**
1988
- * Generated factory for {@link Credential} record objects.
1946
+ * Generated factory for {@link FieldViolation} record objects.
1989
1947
  */
1990
- export declare const Credential: Readonly<{
1991
- create: (partial: Partial<Credential> & Required<Omit<Credential, never>>) => Credential;
1992
- new: (partial: Partial<Credential> & Required<Omit<Credential, never>>) => Credential;
1993
- defaults: () => Partial<Credential>;
1948
+ export declare const FieldViolation: Readonly<{
1949
+ create: (partial: Partial<FieldViolation> & Required<Omit<FieldViolation, never>>) => FieldViolation;
1950
+ new: (partial: Partial<FieldViolation> & Required<Omit<FieldViolation, never>>) => FieldViolation;
1951
+ defaults: () => Partial<FieldViolation>;
1994
1952
  }>;
1995
- /**
1996
- * Whether the configured recovery sequence ran to a conclusive answer.
1997
- */
1998
- export declare enum RecoveryStatus {
1999
- NotRequested = 0,
2000
- NotFound = 1,
2001
- Recovered = 2,
2002
- /**
2003
- * No credential was recovered and at least one required attempt failed or was skipped.
2004
- */
2005
- Incomplete = 3
2006
- }
2007
- export declare enum RecoveryIssue_Tags {
2008
- BinderFailed = "BinderFailed",
2009
- AlgorithmDeprecated = "AlgorithmDeprecated",
2010
- BindingUndeclared = "BindingUndeclared",
2011
- BindingQueryFailed = "BindingQueryFailed",
2012
- QueryRefused = "QueryRefused",
2013
- ContentFormUnsupported = "ContentFormUnsupported",
2014
- ContentQueryFailed = "ContentQueryFailed",
2015
- CapabilitiesUnavailable = "CapabilitiesUnavailable",
2016
- ContentTooLarge = "ContentTooLarge",
2017
- CandidateFetchFailed = "CandidateFetchFailed",
2018
- CandidateInvalid = "CandidateInvalid",
2019
- EndpointRefused = "EndpointRefused",
2020
- ResourceLimitReached = "ResourceLimitReached"
1953
+ export declare enum SdkError_Tags {
1954
+ Reason = "Reason",
1955
+ Invalid = "Invalid",
1956
+ Status = "Status"
2021
1957
  }
2022
1958
  /**
2023
- * Why repository recovery did not complete cleanly, or why one candidate was omitted while another
2024
- * succeeded. Kept as data so a partial recovery never loses the rest of the lookup outcome, and
2025
- * each kind carries exactly what it is about.
1959
+ * The error every SDK call throws: a decoded `google.rpc.Status`, discriminated
1960
+ * as a semantic reason, a request validation, or a bare status. `code` and `message`
1961
+ * are common to every variant.
2026
1962
  */
2027
- export declare const RecoveryIssue: Readonly<{
2028
- instanceOf: (obj: any) => obj is RecoveryIssue;
2029
- BinderFailed: {
1963
+ export declare const SdkError: Readonly<{
1964
+ instanceOf: (obj: any) => obj is SdkError;
1965
+ Reason: {
2030
1966
  new (inner: {
2031
- binderIndex: number;
1967
+ code: Code;
1968
+ message: string;
1969
+ reason: string;
1970
+ domain: string;
1971
+ metadata: Map<string, string>;
1972
+ }): {
1973
+ /**
1974
+ * @private
1975
+ * This field is private and should not be used, use `tag` instead.
1976
+ */
1977
+ readonly [uniffiTypeNameSymbol]: "SdkError";
1978
+ readonly tag: SdkError_Tags.Reason;
1979
+ readonly inner: Readonly<{
1980
+ code: Code;
1981
+ message: string;
1982
+ reason: string;
1983
+ domain: string;
1984
+ metadata: Map<string, string>;
1985
+ }>;
1986
+ name: string;
1987
+ message: string;
1988
+ stack?: string;
1989
+ cause?: unknown;
1990
+ };
1991
+ "new"(inner: {
1992
+ code: Code;
1993
+ message: string;
1994
+ reason: string;
1995
+ domain: string;
1996
+ metadata: Map<string, string>;
1997
+ }): {
1998
+ /**
1999
+ * @private
2000
+ * This field is private and should not be used, use `tag` instead.
2001
+ */
2002
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2003
+ readonly tag: SdkError_Tags.Reason;
2004
+ readonly inner: Readonly<{
2005
+ code: Code;
2006
+ message: string;
2007
+ reason: string;
2008
+ domain: string;
2009
+ metadata: Map<string, string>;
2010
+ }>;
2011
+ name: string;
2012
+ message: string;
2013
+ stack?: string;
2014
+ cause?: unknown;
2015
+ };
2016
+ instanceOf(obj: any): obj is {
2017
+ /**
2018
+ * @private
2019
+ * This field is private and should not be used, use `tag` instead.
2020
+ */
2021
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2022
+ readonly tag: SdkError_Tags.Reason;
2023
+ readonly inner: Readonly<{
2024
+ code: Code;
2025
+ message: string;
2026
+ reason: string;
2027
+ domain: string;
2028
+ metadata: Map<string, string>;
2029
+ }>;
2030
+ name: string;
2032
2031
  message: string;
2033
- }): {
2032
+ stack?: string;
2033
+ cause?: unknown;
2034
+ };
2035
+ hasInner(obj: any): obj is {
2034
2036
  /**
2035
2037
  * @private
2036
2038
  * This field is private and should not be used, use `tag` instead.
2037
2039
  */
2038
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2039
- readonly tag: RecoveryIssue_Tags.BinderFailed;
2040
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2041
+ readonly tag: SdkError_Tags.Reason;
2040
2042
  readonly inner: Readonly<{
2041
- binderIndex: number;
2043
+ code: Code;
2042
2044
  message: string;
2045
+ reason: string;
2046
+ domain: string;
2047
+ metadata: Map<string, string>;
2043
2048
  }>;
2049
+ name: string;
2050
+ message: string;
2051
+ stack?: string;
2052
+ cause?: unknown;
2044
2053
  };
2045
- "new"(inner: {
2046
- binderIndex: number;
2054
+ getInner(obj: {
2055
+ /**
2056
+ * @private
2057
+ * This field is private and should not be used, use `tag` instead.
2058
+ */
2059
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2060
+ readonly tag: SdkError_Tags.Reason;
2061
+ readonly inner: Readonly<{
2062
+ code: Code;
2063
+ message: string;
2064
+ reason: string;
2065
+ domain: string;
2066
+ metadata: Map<string, string>;
2067
+ }>;
2068
+ name: string;
2069
+ message: string;
2070
+ stack?: string;
2071
+ cause?: unknown;
2072
+ }): Readonly<{
2073
+ code: Code;
2074
+ message: string;
2075
+ reason: string;
2076
+ domain: string;
2077
+ metadata: Map<string, string>;
2078
+ }>;
2079
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
2080
+ prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
2081
+ stackTraceLimit: number;
2082
+ };
2083
+ Invalid: {
2084
+ new (inner: {
2085
+ code: Code;
2047
2086
  message: string;
2087
+ fieldViolations: Array<FieldViolation>;
2048
2088
  }): {
2049
2089
  /**
2050
2090
  * @private
2051
2091
  * This field is private and should not be used, use `tag` instead.
2052
2092
  */
2053
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2054
- readonly tag: RecoveryIssue_Tags.BinderFailed;
2093
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2094
+ readonly tag: SdkError_Tags.Invalid;
2055
2095
  readonly inner: Readonly<{
2056
- binderIndex: number;
2096
+ code: Code;
2057
2097
  message: string;
2098
+ fieldViolations: Array<FieldViolation>;
2058
2099
  }>;
2100
+ name: string;
2101
+ message: string;
2102
+ stack?: string;
2103
+ cause?: unknown;
2059
2104
  };
2060
- instanceOf(obj: any): obj is {
2105
+ "new"(inner: {
2106
+ code: Code;
2107
+ message: string;
2108
+ fieldViolations: Array<FieldViolation>;
2109
+ }): {
2061
2110
  /**
2062
2111
  * @private
2063
2112
  * This field is private and should not be used, use `tag` instead.
2064
2113
  */
2065
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2066
- readonly tag: RecoveryIssue_Tags.BinderFailed;
2114
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2115
+ readonly tag: SdkError_Tags.Invalid;
2067
2116
  readonly inner: Readonly<{
2068
- binderIndex: number;
2117
+ code: Code;
2069
2118
  message: string;
2119
+ fieldViolations: Array<FieldViolation>;
2070
2120
  }>;
2121
+ name: string;
2122
+ message: string;
2123
+ stack?: string;
2124
+ cause?: unknown;
2071
2125
  };
2072
- };
2073
- AlgorithmDeprecated: {
2074
- new (inner: {
2075
- algorithm: string;
2076
- }): {
2126
+ instanceOf(obj: any): obj is {
2077
2127
  /**
2078
2128
  * @private
2079
2129
  * This field is private and should not be used, use `tag` instead.
2080
2130
  */
2081
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2082
- readonly tag: RecoveryIssue_Tags.AlgorithmDeprecated;
2131
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2132
+ readonly tag: SdkError_Tags.Invalid;
2083
2133
  readonly inner: Readonly<{
2084
- algorithm: string;
2134
+ code: Code;
2135
+ message: string;
2136
+ fieldViolations: Array<FieldViolation>;
2085
2137
  }>;
2138
+ name: string;
2139
+ message: string;
2140
+ stack?: string;
2141
+ cause?: unknown;
2086
2142
  };
2087
- "new"(inner: {
2088
- algorithm: string;
2089
- }): {
2143
+ hasInner(obj: any): obj is {
2090
2144
  /**
2091
2145
  * @private
2092
2146
  * This field is private and should not be used, use `tag` instead.
2093
2147
  */
2094
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2095
- readonly tag: RecoveryIssue_Tags.AlgorithmDeprecated;
2148
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2149
+ readonly tag: SdkError_Tags.Invalid;
2096
2150
  readonly inner: Readonly<{
2097
- algorithm: string;
2151
+ code: Code;
2152
+ message: string;
2153
+ fieldViolations: Array<FieldViolation>;
2098
2154
  }>;
2155
+ name: string;
2156
+ message: string;
2157
+ stack?: string;
2158
+ cause?: unknown;
2099
2159
  };
2100
- instanceOf(obj: any): obj is {
2160
+ getInner(obj: {
2101
2161
  /**
2102
2162
  * @private
2103
2163
  * This field is private and should not be used, use `tag` instead.
2104
2164
  */
2105
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2106
- readonly tag: RecoveryIssue_Tags.AlgorithmDeprecated;
2165
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2166
+ readonly tag: SdkError_Tags.Invalid;
2107
2167
  readonly inner: Readonly<{
2108
- algorithm: string;
2168
+ code: Code;
2169
+ message: string;
2170
+ fieldViolations: Array<FieldViolation>;
2109
2171
  }>;
2110
- };
2172
+ name: string;
2173
+ message: string;
2174
+ stack?: string;
2175
+ cause?: unknown;
2176
+ }): Readonly<{
2177
+ code: Code;
2178
+ message: string;
2179
+ fieldViolations: Array<FieldViolation>;
2180
+ }>;
2181
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
2182
+ prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
2183
+ stackTraceLimit: number;
2111
2184
  };
2112
- BindingUndeclared: {
2185
+ Status: {
2113
2186
  new (inner: {
2114
- binderIndex: number;
2115
- algorithm: string;
2187
+ code: Code;
2188
+ message: string;
2116
2189
  }): {
2117
2190
  /**
2118
2191
  * @private
2119
2192
  * This field is private and should not be used, use `tag` instead.
2120
2193
  */
2121
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2122
- readonly tag: RecoveryIssue_Tags.BindingUndeclared;
2194
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2195
+ readonly tag: SdkError_Tags.Status;
2123
2196
  readonly inner: Readonly<{
2124
- binderIndex: number;
2125
- algorithm: string;
2197
+ code: Code;
2198
+ message: string;
2126
2199
  }>;
2200
+ name: string;
2201
+ message: string;
2202
+ stack?: string;
2203
+ cause?: unknown;
2127
2204
  };
2128
2205
  "new"(inner: {
2129
- binderIndex: number;
2130
- algorithm: string;
2206
+ code: Code;
2207
+ message: string;
2131
2208
  }): {
2132
2209
  /**
2133
2210
  * @private
2134
2211
  * This field is private and should not be used, use `tag` instead.
2135
2212
  */
2136
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2137
- readonly tag: RecoveryIssue_Tags.BindingUndeclared;
2213
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2214
+ readonly tag: SdkError_Tags.Status;
2138
2215
  readonly inner: Readonly<{
2139
- binderIndex: number;
2140
- algorithm: string;
2216
+ code: Code;
2217
+ message: string;
2141
2218
  }>;
2219
+ name: string;
2220
+ message: string;
2221
+ stack?: string;
2222
+ cause?: unknown;
2142
2223
  };
2143
2224
  instanceOf(obj: any): obj is {
2144
2225
  /**
2145
2226
  * @private
2146
2227
  * This field is private and should not be used, use `tag` instead.
2147
2228
  */
2148
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2149
- readonly tag: RecoveryIssue_Tags.BindingUndeclared;
2229
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2230
+ readonly tag: SdkError_Tags.Status;
2231
+ readonly inner: Readonly<{
2232
+ code: Code;
2233
+ message: string;
2234
+ }>;
2235
+ name: string;
2236
+ message: string;
2237
+ stack?: string;
2238
+ cause?: unknown;
2239
+ };
2240
+ hasInner(obj: any): obj is {
2241
+ /**
2242
+ * @private
2243
+ * This field is private and should not be used, use `tag` instead.
2244
+ */
2245
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2246
+ readonly tag: SdkError_Tags.Status;
2150
2247
  readonly inner: Readonly<{
2151
- binderIndex: number;
2152
- algorithm: string;
2248
+ code: Code;
2249
+ message: string;
2153
2250
  }>;
2251
+ name: string;
2252
+ message: string;
2253
+ stack?: string;
2254
+ cause?: unknown;
2154
2255
  };
2256
+ getInner(obj: {
2257
+ /**
2258
+ * @private
2259
+ * This field is private and should not be used, use `tag` instead.
2260
+ */
2261
+ readonly [uniffiTypeNameSymbol]: "SdkError";
2262
+ readonly tag: SdkError_Tags.Status;
2263
+ readonly inner: Readonly<{
2264
+ code: Code;
2265
+ message: string;
2266
+ }>;
2267
+ name: string;
2268
+ message: string;
2269
+ stack?: string;
2270
+ cause?: unknown;
2271
+ }): Readonly<{
2272
+ code: Code;
2273
+ message: string;
2274
+ }>;
2275
+ captureStackTrace(targetObject: object, constructorOpt?: Function): void;
2276
+ prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
2277
+ stackTraceLimit: number;
2155
2278
  };
2156
- BindingQueryFailed: {
2279
+ }>;
2280
+ /**
2281
+ * The error every SDK call throws: a decoded `google.rpc.Status`, discriminated
2282
+ * as a semantic reason, a request validation, or a bare status. `code` and `message`
2283
+ * are common to every variant.
2284
+ */
2285
+ export type SdkError = InstanceType<typeof SdkError['Reason' | 'Invalid' | 'Status']>;
2286
+ /**
2287
+ * One `verify` result: the c2pa manifest store, where it came from, and whether its hard
2288
+ * binding holds over the bytes read. A handle: it keeps the store, so a thumbnail is read from it
2289
+ * with `resource` and never travels with the report.
2290
+ */
2291
+ export interface CredentialLike {
2292
+ /**
2293
+ * Whether the manifest's hard binding holds over the bytes this verify read.
2294
+ */
2295
+ hardBinding(): HardBinding;
2296
+ /**
2297
+ * Where this credential sits among the others returned.
2298
+ */
2299
+ lineage(): Lineage;
2300
+ /**
2301
+ * The c2pa manifest store: its manifests by label, the active one, and the validation state
2302
+ * and results.
2303
+ */
2304
+ manifest(): ManifestStore;
2305
+ /**
2306
+ * Where this credential came from.
2307
+ */
2308
+ origin(): CredentialOrigin;
2309
+ /**
2310
+ * The bytes of one resource the store holds, or nothing: a thumbnail is read with the
2311
+ * `identifier` of the resource reference in `manifest`, and rendered with the `format` beside
2312
+ * it. A `uri` naming a manifest rather than a resource answers that manifest's own JUMBF, so
2313
+ * pass what a reference states, never a bare label.
2314
+ *
2315
+ * # Errors
2316
+ *
2317
+ * `READER_INVALID` when the store holds the resource but cannot produce it.
2318
+ */
2319
+ resource(uri: string, asyncOpts_?: {
2320
+ signal: AbortSignal;
2321
+ }): Promise<ArrayBuffer | undefined>;
2322
+ }
2323
+ /**
2324
+ * @deprecated Use `CredentialLike` instead.
2325
+ */
2326
+ export type CredentialInterface = CredentialLike;
2327
+ /**
2328
+ * One `verify` result: the c2pa manifest store, where it came from, and whether its hard
2329
+ * binding holds over the bytes read. A handle: it keeps the store, so a thumbnail is read from it
2330
+ * with `resource` and never travels with the report.
2331
+ */
2332
+ export declare class Credential extends UniffiAbstractObject implements CredentialLike {
2333
+ readonly [uniffiTypeNameSymbol] = "Credential";
2334
+ readonly [destructorGuardSymbol]: UniffiGcObject;
2335
+ readonly [pointerLiteralSymbol]: UniffiHandle;
2336
+ private constructor();
2337
+ /**
2338
+ * Whether the manifest's hard binding holds over the bytes this verify read.
2339
+ */
2340
+ hardBinding(): HardBinding;
2341
+ /**
2342
+ * Where this credential sits among the others returned.
2343
+ */
2344
+ lineage(): Lineage;
2345
+ /**
2346
+ * The c2pa manifest store: its manifests by label, the active one, and the validation state
2347
+ * and results.
2348
+ */
2349
+ manifest(): ManifestStore;
2350
+ /**
2351
+ * Where this credential came from.
2352
+ */
2353
+ origin(): CredentialOrigin;
2354
+ /**
2355
+ * The bytes of one resource the store holds, or nothing: a thumbnail is read with the
2356
+ * `identifier` of the resource reference in `manifest`, and rendered with the `format` beside
2357
+ * it. A `uri` naming a manifest rather than a resource answers that manifest's own JUMBF, so
2358
+ * pass what a reference states, never a bare label.
2359
+ *
2360
+ * # Errors
2361
+ *
2362
+ * `READER_INVALID` when the store holds the resource but cannot produce it.
2363
+ */
2364
+ resource(uri: string, asyncOpts_?: {
2365
+ signal: AbortSignal;
2366
+ }): Promise<ArrayBuffer | undefined>;
2367
+ uniffiDestroy(): void;
2368
+ static instanceOf(obj_: any): obj_ is Credential;
2369
+ }
2370
+ /**
2371
+ * Whether the configured recovery sequence ran to a conclusive answer.
2372
+ */
2373
+ export declare enum RecoveryStatus {
2374
+ NotRequested = 0,
2375
+ NotFound = 1,
2376
+ Recovered = 2,
2377
+ /**
2378
+ * No credential was recovered and at least one required attempt failed or was skipped.
2379
+ */
2380
+ Incomplete = 3
2381
+ }
2382
+ export declare enum RecoveryIssue_Tags {
2383
+ ComputeFailed = "ComputeFailed",
2384
+ BindingFailed = "BindingFailed",
2385
+ QueryRefused = "QueryRefused",
2386
+ ContentFailed = "ContentFailed",
2387
+ CapabilitiesUnavailable = "CapabilitiesUnavailable",
2388
+ TooLarge = "TooLarge",
2389
+ FetchFailed = "FetchFailed",
2390
+ CandidateInvalid = "CandidateInvalid",
2391
+ EndpointRefused = "EndpointRefused",
2392
+ LimitReached = "LimitReached"
2393
+ }
2394
+ /**
2395
+ * Why repository recovery did not complete cleanly, or why one candidate was omitted while another
2396
+ * succeeded. Kept as data so a partial recovery never loses the rest of the lookup outcome, and
2397
+ * each kind carries exactly what it is about.
2398
+ */
2399
+ export declare const RecoveryIssue: Readonly<{
2400
+ instanceOf: (obj: any) => obj is RecoveryIssue;
2401
+ ComputeFailed: {
2157
2402
  new (inner: {
2158
- repository: string;
2159
- binderIndex: number;
2160
- algorithm: string;
2403
+ alg: string;
2161
2404
  message: string;
2162
2405
  }): {
2163
2406
  /**
@@ -2165,18 +2408,14 @@ export declare const RecoveryIssue: Readonly<{
2165
2408
  * This field is private and should not be used, use `tag` instead.
2166
2409
  */
2167
2410
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2168
- readonly tag: RecoveryIssue_Tags.BindingQueryFailed;
2411
+ readonly tag: RecoveryIssue_Tags.ComputeFailed;
2169
2412
  readonly inner: Readonly<{
2170
- repository: string;
2171
- binderIndex: number;
2172
- algorithm: string;
2413
+ alg: string;
2173
2414
  message: string;
2174
2415
  }>;
2175
2416
  };
2176
2417
  "new"(inner: {
2177
- repository: string;
2178
- binderIndex: number;
2179
- algorithm: string;
2418
+ alg: string;
2180
2419
  message: string;
2181
2420
  }): {
2182
2421
  /**
@@ -2184,11 +2423,9 @@ export declare const RecoveryIssue: Readonly<{
2184
2423
  * This field is private and should not be used, use `tag` instead.
2185
2424
  */
2186
2425
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2187
- readonly tag: RecoveryIssue_Tags.BindingQueryFailed;
2426
+ readonly tag: RecoveryIssue_Tags.ComputeFailed;
2188
2427
  readonly inner: Readonly<{
2189
- repository: string;
2190
- binderIndex: number;
2191
- algorithm: string;
2428
+ alg: string;
2192
2429
  message: string;
2193
2430
  }>;
2194
2431
  };
@@ -2198,19 +2435,17 @@ export declare const RecoveryIssue: Readonly<{
2198
2435
  * This field is private and should not be used, use `tag` instead.
2199
2436
  */
2200
2437
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2201
- readonly tag: RecoveryIssue_Tags.BindingQueryFailed;
2438
+ readonly tag: RecoveryIssue_Tags.ComputeFailed;
2202
2439
  readonly inner: Readonly<{
2203
- repository: string;
2204
- binderIndex: number;
2205
- algorithm: string;
2440
+ alg: string;
2206
2441
  message: string;
2207
2442
  }>;
2208
2443
  };
2209
2444
  };
2210
- QueryRefused: {
2445
+ BindingFailed: {
2211
2446
  new (inner: {
2212
2447
  repository: string;
2213
- algorithm: string;
2448
+ alg: string;
2214
2449
  message: string;
2215
2450
  }): {
2216
2451
  /**
@@ -2218,16 +2453,16 @@ export declare const RecoveryIssue: Readonly<{
2218
2453
  * This field is private and should not be used, use `tag` instead.
2219
2454
  */
2220
2455
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2221
- readonly tag: RecoveryIssue_Tags.QueryRefused;
2456
+ readonly tag: RecoveryIssue_Tags.BindingFailed;
2222
2457
  readonly inner: Readonly<{
2223
2458
  repository: string;
2224
- algorithm: string;
2459
+ alg: string;
2225
2460
  message: string;
2226
2461
  }>;
2227
2462
  };
2228
2463
  "new"(inner: {
2229
2464
  repository: string;
2230
- algorithm: string;
2465
+ alg: string;
2231
2466
  message: string;
2232
2467
  }): {
2233
2468
  /**
@@ -2235,10 +2470,10 @@ export declare const RecoveryIssue: Readonly<{
2235
2470
  * This field is private and should not be used, use `tag` instead.
2236
2471
  */
2237
2472
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2238
- readonly tag: RecoveryIssue_Tags.QueryRefused;
2473
+ readonly tag: RecoveryIssue_Tags.BindingFailed;
2239
2474
  readonly inner: Readonly<{
2240
2475
  repository: string;
2241
- algorithm: string;
2476
+ alg: string;
2242
2477
  message: string;
2243
2478
  }>;
2244
2479
  };
@@ -2248,17 +2483,18 @@ export declare const RecoveryIssue: Readonly<{
2248
2483
  * This field is private and should not be used, use `tag` instead.
2249
2484
  */
2250
2485
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2251
- readonly tag: RecoveryIssue_Tags.QueryRefused;
2486
+ readonly tag: RecoveryIssue_Tags.BindingFailed;
2252
2487
  readonly inner: Readonly<{
2253
2488
  repository: string;
2254
- algorithm: string;
2489
+ alg: string;
2255
2490
  message: string;
2256
2491
  }>;
2257
2492
  };
2258
2493
  };
2259
- ContentFormUnsupported: {
2494
+ QueryRefused: {
2260
2495
  new (inner: {
2261
2496
  repository: string;
2497
+ alg: string;
2262
2498
  message: string;
2263
2499
  }): {
2264
2500
  /**
@@ -2266,14 +2502,16 @@ export declare const RecoveryIssue: Readonly<{
2266
2502
  * This field is private and should not be used, use `tag` instead.
2267
2503
  */
2268
2504
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2269
- readonly tag: RecoveryIssue_Tags.ContentFormUnsupported;
2505
+ readonly tag: RecoveryIssue_Tags.QueryRefused;
2270
2506
  readonly inner: Readonly<{
2271
2507
  repository: string;
2508
+ alg: string;
2272
2509
  message: string;
2273
2510
  }>;
2274
2511
  };
2275
2512
  "new"(inner: {
2276
2513
  repository: string;
2514
+ alg: string;
2277
2515
  message: string;
2278
2516
  }): {
2279
2517
  /**
@@ -2281,9 +2519,10 @@ export declare const RecoveryIssue: Readonly<{
2281
2519
  * This field is private and should not be used, use `tag` instead.
2282
2520
  */
2283
2521
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2284
- readonly tag: RecoveryIssue_Tags.ContentFormUnsupported;
2522
+ readonly tag: RecoveryIssue_Tags.QueryRefused;
2285
2523
  readonly inner: Readonly<{
2286
2524
  repository: string;
2525
+ alg: string;
2287
2526
  message: string;
2288
2527
  }>;
2289
2528
  };
@@ -2293,17 +2532,18 @@ export declare const RecoveryIssue: Readonly<{
2293
2532
  * This field is private and should not be used, use `tag` instead.
2294
2533
  */
2295
2534
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2296
- readonly tag: RecoveryIssue_Tags.ContentFormUnsupported;
2535
+ readonly tag: RecoveryIssue_Tags.QueryRefused;
2297
2536
  readonly inner: Readonly<{
2298
2537
  repository: string;
2538
+ alg: string;
2299
2539
  message: string;
2300
2540
  }>;
2301
2541
  };
2302
2542
  };
2303
- ContentQueryFailed: {
2543
+ ContentFailed: {
2304
2544
  new (inner: {
2305
2545
  repository: string;
2306
- algorithm: string;
2546
+ alg: string;
2307
2547
  message: string;
2308
2548
  }): {
2309
2549
  /**
@@ -2311,16 +2551,16 @@ export declare const RecoveryIssue: Readonly<{
2311
2551
  * This field is private and should not be used, use `tag` instead.
2312
2552
  */
2313
2553
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2314
- readonly tag: RecoveryIssue_Tags.ContentQueryFailed;
2554
+ readonly tag: RecoveryIssue_Tags.ContentFailed;
2315
2555
  readonly inner: Readonly<{
2316
2556
  repository: string;
2317
- algorithm: string;
2557
+ alg: string;
2318
2558
  message: string;
2319
2559
  }>;
2320
2560
  };
2321
2561
  "new"(inner: {
2322
2562
  repository: string;
2323
- algorithm: string;
2563
+ alg: string;
2324
2564
  message: string;
2325
2565
  }): {
2326
2566
  /**
@@ -2328,10 +2568,10 @@ export declare const RecoveryIssue: Readonly<{
2328
2568
  * This field is private and should not be used, use `tag` instead.
2329
2569
  */
2330
2570
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2331
- readonly tag: RecoveryIssue_Tags.ContentQueryFailed;
2571
+ readonly tag: RecoveryIssue_Tags.ContentFailed;
2332
2572
  readonly inner: Readonly<{
2333
2573
  repository: string;
2334
- algorithm: string;
2574
+ alg: string;
2335
2575
  message: string;
2336
2576
  }>;
2337
2577
  };
@@ -2341,10 +2581,10 @@ export declare const RecoveryIssue: Readonly<{
2341
2581
  * This field is private and should not be used, use `tag` instead.
2342
2582
  */
2343
2583
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2344
- readonly tag: RecoveryIssue_Tags.ContentQueryFailed;
2584
+ readonly tag: RecoveryIssue_Tags.ContentFailed;
2345
2585
  readonly inner: Readonly<{
2346
2586
  repository: string;
2347
- algorithm: string;
2587
+ alg: string;
2348
2588
  message: string;
2349
2589
  }>;
2350
2590
  };
@@ -2393,31 +2633,31 @@ export declare const RecoveryIssue: Readonly<{
2393
2633
  }>;
2394
2634
  };
2395
2635
  };
2396
- ContentTooLarge: {
2636
+ TooLarge: {
2397
2637
  new (inner: {
2398
- capBytes: bigint;
2638
+ maxUploadBytes: bigint;
2399
2639
  }): {
2400
2640
  /**
2401
2641
  * @private
2402
2642
  * This field is private and should not be used, use `tag` instead.
2403
2643
  */
2404
2644
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2405
- readonly tag: RecoveryIssue_Tags.ContentTooLarge;
2645
+ readonly tag: RecoveryIssue_Tags.TooLarge;
2406
2646
  readonly inner: Readonly<{
2407
- capBytes: bigint;
2647
+ maxUploadBytes: bigint;
2408
2648
  }>;
2409
2649
  };
2410
2650
  "new"(inner: {
2411
- capBytes: bigint;
2651
+ maxUploadBytes: bigint;
2412
2652
  }): {
2413
2653
  /**
2414
2654
  * @private
2415
2655
  * This field is private and should not be used, use `tag` instead.
2416
2656
  */
2417
2657
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2418
- readonly tag: RecoveryIssue_Tags.ContentTooLarge;
2658
+ readonly tag: RecoveryIssue_Tags.TooLarge;
2419
2659
  readonly inner: Readonly<{
2420
- capBytes: bigint;
2660
+ maxUploadBytes: bigint;
2421
2661
  }>;
2422
2662
  };
2423
2663
  instanceOf(obj: any): obj is {
@@ -2426,13 +2666,13 @@ export declare const RecoveryIssue: Readonly<{
2426
2666
  * This field is private and should not be used, use `tag` instead.
2427
2667
  */
2428
2668
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2429
- readonly tag: RecoveryIssue_Tags.ContentTooLarge;
2669
+ readonly tag: RecoveryIssue_Tags.TooLarge;
2430
2670
  readonly inner: Readonly<{
2431
- capBytes: bigint;
2671
+ maxUploadBytes: bigint;
2432
2672
  }>;
2433
2673
  };
2434
2674
  };
2435
- CandidateFetchFailed: {
2675
+ FetchFailed: {
2436
2676
  new (inner: {
2437
2677
  repository: string;
2438
2678
  manifestId: string;
@@ -2443,7 +2683,7 @@ export declare const RecoveryIssue: Readonly<{
2443
2683
  * This field is private and should not be used, use `tag` instead.
2444
2684
  */
2445
2685
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2446
- readonly tag: RecoveryIssue_Tags.CandidateFetchFailed;
2686
+ readonly tag: RecoveryIssue_Tags.FetchFailed;
2447
2687
  readonly inner: Readonly<{
2448
2688
  repository: string;
2449
2689
  manifestId: string;
@@ -2460,7 +2700,7 @@ export declare const RecoveryIssue: Readonly<{
2460
2700
  * This field is private and should not be used, use `tag` instead.
2461
2701
  */
2462
2702
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2463
- readonly tag: RecoveryIssue_Tags.CandidateFetchFailed;
2703
+ readonly tag: RecoveryIssue_Tags.FetchFailed;
2464
2704
  readonly inner: Readonly<{
2465
2705
  repository: string;
2466
2706
  manifestId: string;
@@ -2473,7 +2713,7 @@ export declare const RecoveryIssue: Readonly<{
2473
2713
  * This field is private and should not be used, use `tag` instead.
2474
2714
  */
2475
2715
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2476
- readonly tag: RecoveryIssue_Tags.CandidateFetchFailed;
2716
+ readonly tag: RecoveryIssue_Tags.FetchFailed;
2477
2717
  readonly inner: Readonly<{
2478
2718
  repository: string;
2479
2719
  manifestId: string;
@@ -2574,7 +2814,7 @@ export declare const RecoveryIssue: Readonly<{
2574
2814
  }>;
2575
2815
  };
2576
2816
  };
2577
- ResourceLimitReached: {
2817
+ LimitReached: {
2578
2818
  new (inner: {
2579
2819
  message: string;
2580
2820
  }): {
@@ -2583,7 +2823,7 @@ export declare const RecoveryIssue: Readonly<{
2583
2823
  * This field is private and should not be used, use `tag` instead.
2584
2824
  */
2585
2825
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2586
- readonly tag: RecoveryIssue_Tags.ResourceLimitReached;
2826
+ readonly tag: RecoveryIssue_Tags.LimitReached;
2587
2827
  readonly inner: Readonly<{
2588
2828
  message: string;
2589
2829
  }>;
@@ -2596,7 +2836,7 @@ export declare const RecoveryIssue: Readonly<{
2596
2836
  * This field is private and should not be used, use `tag` instead.
2597
2837
  */
2598
2838
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2599
- readonly tag: RecoveryIssue_Tags.ResourceLimitReached;
2839
+ readonly tag: RecoveryIssue_Tags.LimitReached;
2600
2840
  readonly inner: Readonly<{
2601
2841
  message: string;
2602
2842
  }>;
@@ -2607,7 +2847,7 @@ export declare const RecoveryIssue: Readonly<{
2607
2847
  * This field is private and should not be used, use `tag` instead.
2608
2848
  */
2609
2849
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2610
- readonly tag: RecoveryIssue_Tags.ResourceLimitReached;
2850
+ readonly tag: RecoveryIssue_Tags.LimitReached;
2611
2851
  readonly inner: Readonly<{
2612
2852
  message: string;
2613
2853
  }>;
@@ -2619,7 +2859,7 @@ export declare const RecoveryIssue: Readonly<{
2619
2859
  * succeeded. Kept as data so a partial recovery never loses the rest of the lookup outcome, and
2620
2860
  * each kind carries exactly what it is about.
2621
2861
  */
2622
- export type RecoveryIssue = InstanceType<typeof RecoveryIssue['BinderFailed' | 'AlgorithmDeprecated' | 'BindingUndeclared' | 'BindingQueryFailed' | 'QueryRefused' | 'ContentFormUnsupported' | 'ContentQueryFailed' | 'CapabilitiesUnavailable' | 'ContentTooLarge' | 'CandidateFetchFailed' | 'CandidateInvalid' | 'EndpointRefused' | 'ResourceLimitReached']>;
2862
+ export type RecoveryIssue = InstanceType<typeof RecoveryIssue['ComputeFailed' | 'BindingFailed' | 'QueryRefused' | 'ContentFailed' | 'CapabilitiesUnavailable' | 'TooLarge' | 'FetchFailed' | 'CandidateInvalid' | 'EndpointRefused' | 'LimitReached']>;
2623
2863
  /**
2624
2864
  * Repository recovery outcome and every non-fatal issue encountered on the way.
2625
2865
  */
@@ -2635,151 +2875,43 @@ export declare const RecoverySummary: Readonly<{
2635
2875
  new: (partial: Partial<RecoverySummary> & Required<Omit<RecoverySummary, never>>) => RecoverySummary;
2636
2876
  defaults: () => Partial<RecoverySummary>;
2637
2877
  }>;
2638
- export declare enum GoldenComparison_Tags {
2639
- NotRequested = "NotRequested",
2640
- NoEmbeddedManifest = "NoEmbeddedManifest",
2641
- NoRecoveredManifest = "NoRecoveredManifest",
2642
- RecoveryIncomplete = "RecoveryIncomplete",
2878
+ export declare enum Golden_Tags {
2643
2879
  Matches = "Matches",
2644
2880
  Differs = "Differs",
2645
2881
  NoneMatches = "NoneMatches",
2646
2882
  Unreadable = "Unreadable"
2647
2883
  }
2648
2884
  /**
2649
- * Typed completion of C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison:
2650
- * the local active manifest against what the repository holds. Every outcome is its own variant.
2885
+ * C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison: the embedded active
2886
+ * manifest against what the repository holds.
2651
2887
  */
2652
- export declare const GoldenComparison: Readonly<{
2653
- instanceOf: (obj: any) => obj is GoldenComparison;
2654
- NotRequested: {
2655
- new (): {
2656
- /**
2657
- * @private
2658
- * This field is private and should not be used, use `tag` instead.
2659
- */
2660
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2661
- readonly tag: GoldenComparison_Tags.NotRequested;
2662
- };
2663
- "new"(): {
2664
- /**
2665
- * @private
2666
- * This field is private and should not be used, use `tag` instead.
2667
- */
2668
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2669
- readonly tag: GoldenComparison_Tags.NotRequested;
2670
- };
2671
- instanceOf(obj: any): obj is {
2672
- /**
2673
- * @private
2674
- * This field is private and should not be used, use `tag` instead.
2675
- */
2676
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2677
- readonly tag: GoldenComparison_Tags.NotRequested;
2678
- };
2679
- };
2680
- NoEmbeddedManifest: {
2681
- new (): {
2682
- /**
2683
- * @private
2684
- * This field is private and should not be used, use `tag` instead.
2685
- */
2686
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2687
- readonly tag: GoldenComparison_Tags.NoEmbeddedManifest;
2688
- };
2689
- "new"(): {
2690
- /**
2691
- * @private
2692
- * This field is private and should not be used, use `tag` instead.
2693
- */
2694
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2695
- readonly tag: GoldenComparison_Tags.NoEmbeddedManifest;
2696
- };
2697
- instanceOf(obj: any): obj is {
2698
- /**
2699
- * @private
2700
- * This field is private and should not be used, use `tag` instead.
2701
- */
2702
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2703
- readonly tag: GoldenComparison_Tags.NoEmbeddedManifest;
2704
- };
2705
- };
2706
- NoRecoveredManifest: {
2707
- new (): {
2708
- /**
2709
- * @private
2710
- * This field is private and should not be used, use `tag` instead.
2711
- */
2712
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2713
- readonly tag: GoldenComparison_Tags.NoRecoveredManifest;
2714
- };
2715
- "new"(): {
2716
- /**
2717
- * @private
2718
- * This field is private and should not be used, use `tag` instead.
2719
- */
2720
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2721
- readonly tag: GoldenComparison_Tags.NoRecoveredManifest;
2722
- };
2723
- instanceOf(obj: any): obj is {
2724
- /**
2725
- * @private
2726
- * This field is private and should not be used, use `tag` instead.
2727
- */
2728
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2729
- readonly tag: GoldenComparison_Tags.NoRecoveredManifest;
2730
- };
2731
- };
2732
- RecoveryIncomplete: {
2733
- new (): {
2734
- /**
2735
- * @private
2736
- * This field is private and should not be used, use `tag` instead.
2737
- */
2738
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2739
- readonly tag: GoldenComparison_Tags.RecoveryIncomplete;
2740
- };
2741
- "new"(): {
2742
- /**
2743
- * @private
2744
- * This field is private and should not be used, use `tag` instead.
2745
- */
2746
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2747
- readonly tag: GoldenComparison_Tags.RecoveryIncomplete;
2748
- };
2749
- instanceOf(obj: any): obj is {
2750
- /**
2751
- * @private
2752
- * This field is private and should not be used, use `tag` instead.
2753
- */
2754
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2755
- readonly tag: GoldenComparison_Tags.RecoveryIncomplete;
2756
- };
2757
- };
2888
+ export declare const Golden: Readonly<{
2889
+ instanceOf: (obj: any) => obj is Golden;
2758
2890
  Matches: {
2759
2891
  new (inner: {
2760
- recoveredIndex: number;
2892
+ index: number;
2761
2893
  }): {
2762
2894
  /**
2763
2895
  * @private
2764
2896
  * This field is private and should not be used, use `tag` instead.
2765
2897
  */
2766
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2767
- readonly tag: GoldenComparison_Tags.Matches;
2898
+ readonly [uniffiTypeNameSymbol]: "Golden";
2899
+ readonly tag: Golden_Tags.Matches;
2768
2900
  readonly inner: Readonly<{
2769
- recoveredIndex: number;
2901
+ index: number;
2770
2902
  }>;
2771
2903
  };
2772
2904
  "new"(inner: {
2773
- recoveredIndex: number;
2905
+ index: number;
2774
2906
  }): {
2775
2907
  /**
2776
2908
  * @private
2777
2909
  * This field is private and should not be used, use `tag` instead.
2778
2910
  */
2779
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2780
- readonly tag: GoldenComparison_Tags.Matches;
2911
+ readonly [uniffiTypeNameSymbol]: "Golden";
2912
+ readonly tag: Golden_Tags.Matches;
2781
2913
  readonly inner: Readonly<{
2782
- recoveredIndex: number;
2914
+ index: number;
2783
2915
  }>;
2784
2916
  };
2785
2917
  instanceOf(obj: any): obj is {
@@ -2787,38 +2919,38 @@ export declare const GoldenComparison: Readonly<{
2787
2919
  * @private
2788
2920
  * This field is private and should not be used, use `tag` instead.
2789
2921
  */
2790
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2791
- readonly tag: GoldenComparison_Tags.Matches;
2922
+ readonly [uniffiTypeNameSymbol]: "Golden";
2923
+ readonly tag: Golden_Tags.Matches;
2792
2924
  readonly inner: Readonly<{
2793
- recoveredIndex: number;
2925
+ index: number;
2794
2926
  }>;
2795
2927
  };
2796
2928
  };
2797
2929
  Differs: {
2798
2930
  new (inner: {
2799
- recoveredIndex: number;
2931
+ index: number;
2800
2932
  }): {
2801
2933
  /**
2802
2934
  * @private
2803
2935
  * This field is private and should not be used, use `tag` instead.
2804
2936
  */
2805
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2806
- readonly tag: GoldenComparison_Tags.Differs;
2937
+ readonly [uniffiTypeNameSymbol]: "Golden";
2938
+ readonly tag: Golden_Tags.Differs;
2807
2939
  readonly inner: Readonly<{
2808
- recoveredIndex: number;
2940
+ index: number;
2809
2941
  }>;
2810
2942
  };
2811
2943
  "new"(inner: {
2812
- recoveredIndex: number;
2944
+ index: number;
2813
2945
  }): {
2814
2946
  /**
2815
2947
  * @private
2816
2948
  * This field is private and should not be used, use `tag` instead.
2817
2949
  */
2818
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2819
- readonly tag: GoldenComparison_Tags.Differs;
2950
+ readonly [uniffiTypeNameSymbol]: "Golden";
2951
+ readonly tag: Golden_Tags.Differs;
2820
2952
  readonly inner: Readonly<{
2821
- recoveredIndex: number;
2953
+ index: number;
2822
2954
  }>;
2823
2955
  };
2824
2956
  instanceOf(obj: any): obj is {
@@ -2826,10 +2958,10 @@ export declare const GoldenComparison: Readonly<{
2826
2958
  * @private
2827
2959
  * This field is private and should not be used, use `tag` instead.
2828
2960
  */
2829
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2830
- readonly tag: GoldenComparison_Tags.Differs;
2961
+ readonly [uniffiTypeNameSymbol]: "Golden";
2962
+ readonly tag: Golden_Tags.Differs;
2831
2963
  readonly inner: Readonly<{
2832
- recoveredIndex: number;
2964
+ index: number;
2833
2965
  }>;
2834
2966
  };
2835
2967
  };
@@ -2841,8 +2973,8 @@ export declare const GoldenComparison: Readonly<{
2841
2973
  * @private
2842
2974
  * This field is private and should not be used, use `tag` instead.
2843
2975
  */
2844
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2845
- readonly tag: GoldenComparison_Tags.NoneMatches;
2976
+ readonly [uniffiTypeNameSymbol]: "Golden";
2977
+ readonly tag: Golden_Tags.NoneMatches;
2846
2978
  readonly inner: Readonly<{
2847
2979
  candidates: Array<number>;
2848
2980
  }>;
@@ -2854,8 +2986,8 @@ export declare const GoldenComparison: Readonly<{
2854
2986
  * @private
2855
2987
  * This field is private and should not be used, use `tag` instead.
2856
2988
  */
2857
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2858
- readonly tag: GoldenComparison_Tags.NoneMatches;
2989
+ readonly [uniffiTypeNameSymbol]: "Golden";
2990
+ readonly tag: Golden_Tags.NoneMatches;
2859
2991
  readonly inner: Readonly<{
2860
2992
  candidates: Array<number>;
2861
2993
  }>;
@@ -2865,8 +2997,8 @@ export declare const GoldenComparison: Readonly<{
2865
2997
  * @private
2866
2998
  * This field is private and should not be used, use `tag` instead.
2867
2999
  */
2868
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2869
- readonly tag: GoldenComparison_Tags.NoneMatches;
3000
+ readonly [uniffiTypeNameSymbol]: "Golden";
3001
+ readonly tag: Golden_Tags.NoneMatches;
2870
3002
  readonly inner: Readonly<{
2871
3003
  candidates: Array<number>;
2872
3004
  }>;
@@ -2874,29 +3006,29 @@ export declare const GoldenComparison: Readonly<{
2874
3006
  };
2875
3007
  Unreadable: {
2876
3008
  new (inner: {
2877
- recoveredIndex: number;
3009
+ index: number;
2878
3010
  }): {
2879
3011
  /**
2880
3012
  * @private
2881
3013
  * This field is private and should not be used, use `tag` instead.
2882
3014
  */
2883
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2884
- readonly tag: GoldenComparison_Tags.Unreadable;
3015
+ readonly [uniffiTypeNameSymbol]: "Golden";
3016
+ readonly tag: Golden_Tags.Unreadable;
2885
3017
  readonly inner: Readonly<{
2886
- recoveredIndex: number;
3018
+ index: number;
2887
3019
  }>;
2888
3020
  };
2889
3021
  "new"(inner: {
2890
- recoveredIndex: number;
3022
+ index: number;
2891
3023
  }): {
2892
3024
  /**
2893
3025
  * @private
2894
3026
  * This field is private and should not be used, use `tag` instead.
2895
3027
  */
2896
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2897
- readonly tag: GoldenComparison_Tags.Unreadable;
3028
+ readonly [uniffiTypeNameSymbol]: "Golden";
3029
+ readonly tag: Golden_Tags.Unreadable;
2898
3030
  readonly inner: Readonly<{
2899
- recoveredIndex: number;
3031
+ index: number;
2900
3032
  }>;
2901
3033
  };
2902
3034
  instanceOf(obj: any): obj is {
@@ -2904,19 +3036,19 @@ export declare const GoldenComparison: Readonly<{
2904
3036
  * @private
2905
3037
  * This field is private and should not be used, use `tag` instead.
2906
3038
  */
2907
- readonly [uniffiTypeNameSymbol]: "GoldenComparison";
2908
- readonly tag: GoldenComparison_Tags.Unreadable;
3039
+ readonly [uniffiTypeNameSymbol]: "Golden";
3040
+ readonly tag: Golden_Tags.Unreadable;
2909
3041
  readonly inner: Readonly<{
2910
- recoveredIndex: number;
3042
+ index: number;
2911
3043
  }>;
2912
3044
  };
2913
3045
  };
2914
3046
  }>;
2915
3047
  /**
2916
- * Typed completion of C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison:
2917
- * the local active manifest against what the repository holds. Every outcome is its own variant.
3048
+ * C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison: the embedded active
3049
+ * manifest against what the repository holds.
2918
3050
  */
2919
- export type GoldenComparison = InstanceType<typeof GoldenComparison['NotRequested' | 'NoEmbeddedManifest' | 'NoRecoveredManifest' | 'RecoveryIncomplete' | 'Matches' | 'Differs' | 'NoneMatches' | 'Unreadable']>;
3051
+ export type Golden = InstanceType<typeof Golden['Matches' | 'Differs' | 'NoneMatches' | 'Unreadable']>;
2920
3052
  /**
2921
3053
  * The evidence that singled a recovered verdict out.
2922
3054
  */
@@ -3182,25 +3314,26 @@ export declare const Verdict: Readonly<{
3182
3314
  export type Verdict = InstanceType<typeof Verdict['Unsigned' | 'Inconclusive' | 'Embedded' | 'Recovered' | 'RecoveredDerivative' | 'Ambiguous']>;
3183
3315
  /**
3184
3316
  * Complete asset verification result: every credential, the recovery state, the C2PA
3185
- * golden-flow comparison, and the verdict the SDK's rules choose. See [`asset::Verdict`].
3317
+ * golden-flow comparison when there was something to compare, and the verdict the SDK's rules
3318
+ * choose. See [`asset::Verdict`].
3186
3319
  */
3187
3320
  export type AssetVerification = {
3188
- credentials: Array<Credential>;
3321
+ credentials: Array<CredentialLike>;
3189
3322
  recovery: RecoverySummary;
3190
- goldenComparison: GoldenComparison;
3323
+ golden?: Golden;
3191
3324
  verdict: Verdict;
3192
3325
  };
3193
3326
  /**
3194
3327
  * Generated factory for {@link AssetVerification} record objects.
3195
3328
  */
3196
3329
  export declare const AssetVerification: Readonly<{
3197
- create: (partial: Partial<AssetVerification> & Required<Omit<AssetVerification, never>>) => AssetVerification;
3198
- new: (partial: Partial<AssetVerification> & Required<Omit<AssetVerification, never>>) => AssetVerification;
3330
+ create: (partial: Partial<AssetVerification> & Required<Omit<AssetVerification, "golden">>) => AssetVerification;
3331
+ new: (partial: Partial<AssetVerification> & Required<Omit<AssetVerification, "golden">>) => AssetVerification;
3199
3332
  defaults: () => Partial<AssetVerification>;
3200
3333
  }>;
3201
3334
  export declare enum Repository_Tags {
3202
3335
  Named = "Named",
3203
- Listed = "Listed"
3336
+ Registered = "Registered"
3204
3337
  }
3205
3338
  /**
3206
3339
  * One C2PA manifest repository, as the Soft Binding Resolution API spec lets a client find it.
@@ -3251,31 +3384,31 @@ export declare const Repository: Readonly<{
3251
3384
  }>;
3252
3385
  };
3253
3386
  };
3254
- Listed: {
3387
+ Registered: {
3255
3388
  new (inner: {
3256
- algorithm: string;
3389
+ alg: string;
3257
3390
  }): {
3258
3391
  /**
3259
3392
  * @private
3260
3393
  * This field is private and should not be used, use `tag` instead.
3261
3394
  */
3262
3395
  readonly [uniffiTypeNameSymbol]: "Repository";
3263
- readonly tag: Repository_Tags.Listed;
3396
+ readonly tag: Repository_Tags.Registered;
3264
3397
  readonly inner: Readonly<{
3265
- algorithm: string;
3398
+ alg: string;
3266
3399
  }>;
3267
3400
  };
3268
3401
  "new"(inner: {
3269
- algorithm: string;
3402
+ alg: string;
3270
3403
  }): {
3271
3404
  /**
3272
3405
  * @private
3273
3406
  * This field is private and should not be used, use `tag` instead.
3274
3407
  */
3275
3408
  readonly [uniffiTypeNameSymbol]: "Repository";
3276
- readonly tag: Repository_Tags.Listed;
3409
+ readonly tag: Repository_Tags.Registered;
3277
3410
  readonly inner: Readonly<{
3278
- algorithm: string;
3411
+ alg: string;
3279
3412
  }>;
3280
3413
  };
3281
3414
  instanceOf(obj: any): obj is {
@@ -3284,9 +3417,9 @@ export declare const Repository: Readonly<{
3284
3417
  * This field is private and should not be used, use `tag` instead.
3285
3418
  */
3286
3419
  readonly [uniffiTypeNameSymbol]: "Repository";
3287
- readonly tag: Repository_Tags.Listed;
3420
+ readonly tag: Repository_Tags.Registered;
3288
3421
  readonly inner: Readonly<{
3289
- algorithm: string;
3422
+ alg: string;
3290
3423
  }>;
3291
3424
  };
3292
3425
  };
@@ -3294,218 +3427,265 @@ export declare const Repository: Readonly<{
3294
3427
  /**
3295
3428
  * One C2PA manifest repository, as the Soft Binding Resolution API spec lets a client find it.
3296
3429
  */
3297
- export type Repository = InstanceType<typeof Repository['Named' | 'Listed']>;
3430
+ export type Repository = InstanceType<typeof Repository['Named' | 'Registered']>;
3298
3431
  /**
3299
- * Construction options for [`AssetVerifier::new`] (and the `AssetVerifier.create` JS
3300
- * binding). Every field is stated: nothing here is chosen on the caller's behalf.
3301
- *
3302
- * One definition, all lanes: `#[binding]` derives the shapes directly here:
3303
- * tsify (camelCase) on wasm, a `uniffi::Record` on the native `ffi` build, so there is no
3304
- * per-lane DTO copy. Off both lanes it is a plain struct.
3432
+ * What a verifier trusts. An omitted list trusts nothing.
3305
3433
  */
3306
- export type AssetVerifierOptions = {
3434
+ export type Trust = {
3307
3435
  /**
3308
- * The C2PA manifest repositories recovery asks, each a Soft Binding Resolution API declared
3309
- * for exactly the algorithms it may be asked for. Results merge by manifest, and a match's
3310
- * `endpoint` is fetched from only when it names one of these. Empty: no recovery can be
3311
- * asked of this verifier.
3436
+ * PEM anchors for the manifest signers the caller trusts.
3312
3437
  */
3313
- repositories: Array<Repository>;
3438
+ anchors: Array<string>;
3314
3439
  /**
3315
- * PEM trust anchors for the manifest signers the caller trusts.
3440
+ * PEM anchors for the time-stamping authorities the caller trusts.
3316
3441
  */
3317
- trustAnchors: Array<string>;
3442
+ tsaAnchors: Array<string>;
3318
3443
  /**
3319
- * PEM trust anchors for the time-stamping authorities the caller trusts.
3444
+ * Also trust the bundled official C2PA manifest and TSA lists, beside the caller's.
3320
3445
  */
3321
- tsaTrustAnchors: Array<string>;
3446
+ c2pa: boolean;
3322
3447
  /**
3323
- * Also trust the bundled official C2PA anchors, manifest and TSA lists, beside the
3324
- * caller's. `false` trusts the caller's lists alone.
3448
+ * Issuer DIDs whose CAWG identity (ICA) credentials count as validated, matched exactly
3449
+ * against the credential issuer. Empty trusts no issuer: every identity assertion then
3450
+ * reports `cawg.ica.untrusted_issuer` and withholds `cawg.ica.credential_valid`, which leaves
3451
+ * the manifest's own validity untouched.
3325
3452
  */
3326
- trustC2paAnchors: boolean;
3453
+ icaIssuers: Array<string>;
3454
+ };
3455
+ /**
3456
+ * Generated factory for {@link Trust} record objects.
3457
+ */
3458
+ export declare const Trust: Readonly<{
3459
+ create: (partial: Partial<Trust> & Required<Omit<Trust, "anchors" | "icaIssuers" | "tsaAnchors">>) => Trust;
3460
+ new: (partial: Partial<Trust> & Required<Omit<Trust, "anchors" | "icaIssuers" | "tsaAnchors">>) => Trust;
3461
+ defaults: () => Partial<Trust>;
3462
+ }>;
3463
+ /**
3464
+ * What an asset verifier trusts and which repositories it may ask. An omitted list trusts or
3465
+ * asks nothing.
3466
+ */
3467
+ export type AssetVerifierOptions = {
3327
3468
  /**
3328
- * Issuer DIDs whose CAWG identity (ICA) credentials count as validated, matched
3329
- * exactly against the credential issuer. Empty trusts no issuer: every identity assertion
3330
- * then reports `cawg.ica.untrusted_issuer` and withholds `cawg.ica.credential_valid`,
3331
- * which leaves the manifest's own validity untouched.
3469
+ * The C2PA manifest repositories recovery asks, each a Soft Binding Resolution API declared
3470
+ * for exactly the algorithms it may be asked for. Results merge by manifest, and a match's
3471
+ * `endpoint` is fetched from only when it names one of these. Empty: no recovery can be
3472
+ * asked of this verifier.
3332
3473
  */
3333
- trustedIcaIssuers: Array<string>;
3474
+ repositories: Array<Repository>;
3475
+ trust: Trust;
3334
3476
  };
3335
3477
  /**
3336
3478
  * Generated factory for {@link AssetVerifierOptions} record objects.
3337
3479
  */
3338
3480
  export declare const AssetVerifierOptions: Readonly<{
3339
- create: (partial: Partial<AssetVerifierOptions> & Required<Omit<AssetVerifierOptions, never>>) => AssetVerifierOptions;
3340
- new: (partial: Partial<AssetVerifierOptions> & Required<Omit<AssetVerifierOptions, never>>) => AssetVerifierOptions;
3481
+ create: (partial: Partial<AssetVerifierOptions> & Required<Omit<AssetVerifierOptions, "repositories">>) => AssetVerifierOptions;
3482
+ new: (partial: Partial<AssetVerifierOptions> & Required<Omit<AssetVerifierOptions, "repositories">>) => AssetVerifierOptions;
3341
3483
  defaults: () => Partial<AssetVerifierOptions>;
3342
3484
  }>;
3343
3485
  /**
3344
- * Whether a content form runs on this verify. Judged against the byBinding results alone.
3486
+ * A `soft-binding-timespan-map`: where the range starts in the media and how long it lasts, in
3487
+ * whole milliseconds.
3345
3488
  */
3346
- export declare enum ContentTrigger {
3347
- /**
3348
- * Only when no binder's lookup resolved a manifest.
3349
- */
3350
- ByBindingMisses = 0,
3351
- /**
3352
- * On every verify, beside the byBinding results: corroboration, and the golden flows.
3353
- */
3354
- Always = 1
3355
- }
3489
+ export type Timespan = {
3490
+ start: number;
3491
+ duration: number;
3492
+ };
3493
+ /**
3494
+ * Generated factory for {@link Timespan} record objects.
3495
+ */
3496
+ export declare const Timespan: Readonly<{
3497
+ create: (partial: Partial<Timespan> & Required<Omit<Timespan, never>>) => Timespan;
3498
+ new: (partial: Partial<Timespan> & Required<Omit<Timespan, never>>) => Timespan;
3499
+ defaults: () => Partial<Timespan>;
3500
+ }>;
3356
3501
  /**
3357
- * `matches/byContent`: the asset is uploaded to each repository, one request per algorithm that
3358
- * repository is declared for.
3502
+ * A `soft-binding-scope-map`: where in the content a value applies. Empty is the whole content.
3359
3503
  */
3360
- export type ByContent = {
3361
- after: ContentTrigger;
3504
+ export type Scope = {
3505
+ timespan?: Timespan;
3362
3506
  };
3363
3507
  /**
3364
- * Generated factory for {@link ByContent} record objects.
3508
+ * Generated factory for {@link Scope} record objects.
3365
3509
  */
3366
- export declare const ByContent: Readonly<{
3367
- create: (partial: Partial<ByContent> & Required<Omit<ByContent, never>>) => ByContent;
3368
- new: (partial: Partial<ByContent> & Required<Omit<ByContent, never>>) => ByContent;
3369
- defaults: () => Partial<ByContent>;
3510
+ export declare const Scope: Readonly<{
3511
+ create: (partial: Partial<Scope> & Required<Omit<Scope, "timespan">>) => Scope;
3512
+ new: (partial: Partial<Scope> & Required<Omit<Scope, "timespan">>) => Scope;
3513
+ defaults: () => Partial<Scope>;
3370
3514
  }>;
3371
3515
  /**
3372
- * [`crate::asset::ByReference`] with the region as the reader's own `Range` record, so a range
3373
- * read off one credential's actions scopes the query for another.
3516
+ * A `soft-binding-block-map`.
3374
3517
  */
3375
- export type ByReference = {
3376
- after: ContentTrigger;
3377
- url: string;
3378
- length: bigint;
3379
- mediaType?: string;
3380
- region: Array<Range>;
3518
+ export type Block = {
3519
+ value: ArrayBuffer;
3520
+ scope: Scope;
3381
3521
  };
3382
3522
  /**
3383
- * Generated factory for {@link ByReference} record objects.
3523
+ * Generated factory for {@link Block} record objects.
3384
3524
  */
3385
- export declare const ByReference: Readonly<{
3386
- create: (partial: Partial<ByReference> & Required<Omit<ByReference, "mediaType">>) => ByReference;
3387
- new: (partial: Partial<ByReference> & Required<Omit<ByReference, "mediaType">>) => ByReference;
3388
- defaults: () => Partial<ByReference>;
3525
+ export declare const Block: Readonly<{
3526
+ create: (partial: Partial<Block> & Required<Omit<Block, "scope">>) => Block;
3527
+ new: (partial: Partial<Block> & Required<Omit<Block, "scope">>) => Block;
3528
+ defaults: () => Partial<Block>;
3389
3529
  }>;
3390
- export declare enum AssetFormat_Tags {
3391
- Sniff = "Sniff",
3392
- Declared = "Declared"
3393
- }
3394
3530
  /**
3395
- * The format of the asset a call is handed. Stated, never defaulted: sniffing is a choice the
3396
- * caller makes by name, not what happens when they say nothing.
3531
+ * A byte range holding a bare C2PA manifest store, or reserved for one. A record of
3532
+ * primitives, so a plugin in its OWN UniFFI namespace declares a structurally identical
3533
+ * one and the two cross the boundary without sharing a Rust type.
3397
3534
  */
3398
- export declare const AssetFormat: Readonly<{
3399
- instanceOf: (obj: any) => obj is AssetFormat;
3400
- Sniff: {
3401
- new (): {
3402
- /**
3403
- * @private
3404
- * This field is private and should not be used, use `tag` instead.
3405
- */
3406
- readonly [uniffiTypeNameSymbol]: "AssetFormat";
3407
- readonly tag: AssetFormat_Tags.Sniff;
3408
- };
3409
- "new"(): {
3410
- /**
3411
- * @private
3412
- * This field is private and should not be used, use `tag` instead.
3413
- */
3414
- readonly [uniffiTypeNameSymbol]: "AssetFormat";
3415
- readonly tag: AssetFormat_Tags.Sniff;
3416
- };
3417
- instanceOf(obj: any): obj is {
3418
- /**
3419
- * @private
3420
- * This field is private and should not be used, use `tag` instead.
3421
- */
3422
- readonly [uniffiTypeNameSymbol]: "AssetFormat";
3423
- readonly tag: AssetFormat_Tags.Sniff;
3424
- };
3425
- };
3426
- Declared: {
3427
- new (inner: {
3428
- mediaType: string;
3429
- }): {
3430
- /**
3431
- * @private
3432
- * This field is private and should not be used, use `tag` instead.
3433
- */
3434
- readonly [uniffiTypeNameSymbol]: "AssetFormat";
3435
- readonly tag: AssetFormat_Tags.Declared;
3436
- readonly inner: Readonly<{
3437
- mediaType: string;
3438
- }>;
3439
- };
3440
- "new"(inner: {
3441
- mediaType: string;
3442
- }): {
3443
- /**
3444
- * @private
3445
- * This field is private and should not be used, use `tag` instead.
3446
- */
3447
- readonly [uniffiTypeNameSymbol]: "AssetFormat";
3448
- readonly tag: AssetFormat_Tags.Declared;
3449
- readonly inner: Readonly<{
3450
- mediaType: string;
3451
- }>;
3452
- };
3453
- instanceOf(obj: any): obj is {
3454
- /**
3455
- * @private
3456
- * This field is private and should not be used, use `tag` instead.
3457
- */
3458
- readonly [uniffiTypeNameSymbol]: "AssetFormat";
3459
- readonly tag: AssetFormat_Tags.Declared;
3460
- readonly inner: Readonly<{
3461
- mediaType: string;
3462
- }>;
3463
- };
3464
- };
3535
+ export type ByteRange = {
3536
+ offset: bigint;
3537
+ length: bigint;
3538
+ };
3539
+ /**
3540
+ * Generated factory for {@link ByteRange} record objects.
3541
+ */
3542
+ export declare const ByteRange: Readonly<{
3543
+ create: (partial: Partial<ByteRange> & Required<Omit<ByteRange, never>>) => ByteRange;
3544
+ new: (partial: Partial<ByteRange> & Required<Omit<ByteRange, never>>) => ByteRange;
3545
+ defaults: () => Partial<ByteRange>;
3465
3546
  }>;
3466
3547
  /**
3467
- * The format of the asset a call is handed. Stated, never defaulted: sniffing is a choice the
3468
- * caller makes by name, not what happens when they say nothing.
3548
+ * The host-supplied ranged reader: `length()` returns the asset size in bytes, `read_at`
3549
+ * reads `length` bytes starting at `offset`. Each call crosses the FFI boundary, and the
3550
+ * caller controls the backing store (memory, file, S3, HTTP, custom).
3551
+ *
3552
+ * # Both methods are async
3553
+ *
3554
+ * Because storage is: an object store is a round trip, and so is anything behind `fetch`. A
3555
+ * synchronous `read_at` forces every such caller to make the asset local first, which is a
3556
+ * whole copy of a file that may be hundreds of gigabytes, to answer reads the SDK was going to
3557
+ * make one window at a time anyway. Implement this over `aiobotocore`, an S3 client, a ranged
3558
+ * `fetch`, or a plain file, and await whatever it takes.
3559
+ *
3560
+ * The SDK never calls back into the thread that called it (see [`task`](super::task)), so an
3561
+ * implementation is free to be as slow as its storage is.
3562
+ *
3563
+ * # Both methods are fallible
3564
+ *
3565
+ * They have to be: an infallible `read_at` can only report a failed read as a short one, which
3566
+ * is indistinguishable from a legitimate end of file, so an S3 timeout would silently verify or
3567
+ * sign a truncated asset.
3568
+ */
3569
+ export interface RangeSource {
3570
+ length(asyncOpts_?: {
3571
+ signal: AbortSignal;
3572
+ }): Promise<bigint>;
3573
+ readAt(offset: bigint, length: number, asyncOpts_?: {
3574
+ signal: AbortSignal;
3575
+ }): Promise<ArrayBuffer>;
3576
+ }
3577
+ /**
3578
+ * The host-supplied ranged reader: `length()` returns the asset size in bytes, `read_at`
3579
+ * reads `length` bytes starting at `offset`. Each call crosses the FFI boundary, and the
3580
+ * caller controls the backing store (memory, file, S3, HTTP, custom).
3581
+ *
3582
+ * # Both methods are async
3583
+ *
3584
+ * Because storage is: an object store is a round trip, and so is anything behind `fetch`. A
3585
+ * synchronous `read_at` forces every such caller to make the asset local first, which is a
3586
+ * whole copy of a file that may be hundreds of gigabytes, to answer reads the SDK was going to
3587
+ * make one window at a time anyway. Implement this over `aiobotocore`, an S3 client, a ranged
3588
+ * `fetch`, or a plain file, and await whatever it takes.
3589
+ *
3590
+ * The SDK never calls back into the thread that called it (see [`task`](super::task)), so an
3591
+ * implementation is free to be as slow as its storage is.
3592
+ *
3593
+ * # Both methods are fallible
3594
+ *
3595
+ * They have to be: an infallible `read_at` can only report a failed read as a short one, which
3596
+ * is indistinguishable from a legitimate end of file, so an S3 timeout would silently verify or
3597
+ * sign a truncated asset.
3469
3598
  */
3470
- export type AssetFormat = InstanceType<typeof AssetFormat['Sniff' | 'Declared']>;
3599
+ export declare class RangeSourceImpl extends UniffiAbstractObject implements RangeSource {
3600
+ readonly [uniffiTypeNameSymbol] = "RangeSourceImpl";
3601
+ readonly [destructorGuardSymbol]: UniffiGcObject;
3602
+ readonly [pointerLiteralSymbol]: UniffiHandle;
3603
+ private constructor();
3604
+ length(asyncOpts_?: {
3605
+ signal: AbortSignal;
3606
+ }): Promise<bigint>;
3607
+ readAt(offset: bigint, length: number, asyncOpts_?: {
3608
+ signal: AbortSignal;
3609
+ }): Promise<ArrayBuffer>;
3610
+ uniffiDestroy(): void;
3611
+ static instanceOf(obj_: any): obj_ is RangeSourceImpl;
3612
+ }
3471
3613
  /**
3472
- * Everything one [`Binder::derive`] needs beyond the asset.
3614
+ * What one [`Compute::compute`] is asked: the asset and its media type.
3473
3615
  */
3474
- export type DeriveOptions = {
3475
- format: AssetFormat;
3616
+ export type ComputeRequest = {
3617
+ source: RangeSource;
3618
+ format: string;
3476
3619
  };
3477
3620
  /**
3478
- * Generated factory for {@link DeriveOptions} record objects.
3621
+ * Generated factory for {@link ComputeRequest} record objects.
3479
3622
  */
3480
- export declare const DeriveOptions: Readonly<{
3481
- create: (partial: Partial<DeriveOptions> & Required<Omit<DeriveOptions, never>>) => DeriveOptions;
3482
- new: (partial: Partial<DeriveOptions> & Required<Omit<DeriveOptions, never>>) => DeriveOptions;
3483
- defaults: () => Partial<DeriveOptions>;
3623
+ export declare const ComputeRequest: Readonly<{
3624
+ create: (partial: Partial<ComputeRequest> & Required<Omit<ComputeRequest, never>>) => ComputeRequest;
3625
+ new: (partial: Partial<ComputeRequest> & Required<Omit<ComputeRequest, never>>) => ComputeRequest;
3626
+ defaults: () => Partial<ComputeRequest>;
3484
3627
  }>;
3485
3628
  /**
3486
- * One `google.rpc.BadRequest.FieldViolation`: a request field that failed a constraint.
3629
+ * Whether a content form runs on this verify. Judged against the byBinding results alone.
3487
3630
  */
3488
- export type FieldViolation = {
3631
+ export declare enum ContentWhen {
3489
3632
  /**
3490
- * A dotted proto path to the offending field (`""` for a message-level rule).
3633
+ * Only when the by-value (byBinding) lookup found nothing.
3491
3634
  */
3492
- field: string;
3635
+ BindingMisses = 0,
3493
3636
  /**
3494
- * Human-readable explanation of the violation.
3637
+ * On every verify, beside the byBinding results: corroboration, and the golden flows.
3495
3638
  */
3496
- description: string;
3639
+ Always = 1
3640
+ }
3641
+ /**
3642
+ * An asset a repository downloads, as the `byReference` request body names it.
3643
+ */
3644
+ export type Reference = {
3497
3645
  /**
3498
- * The constraint id that failed (a protovalidate/CEL rule id), stable across releases.
3646
+ * A short-lived https URL without credentials.
3499
3647
  */
3500
- reason: string;
3648
+ url: string;
3649
+ /**
3650
+ * The asset's size in bytes.
3651
+ */
3652
+ length: bigint;
3653
+ /**
3654
+ * The asset's media type.
3655
+ */
3656
+ format?: string;
3657
+ ranges: Array<Range>;
3501
3658
  };
3502
3659
  /**
3503
- * Generated factory for {@link FieldViolation} record objects.
3660
+ * Generated factory for {@link Reference} record objects.
3504
3661
  */
3505
- export declare const FieldViolation: Readonly<{
3506
- create: (partial: Partial<FieldViolation> & Required<Omit<FieldViolation, never>>) => FieldViolation;
3507
- new: (partial: Partial<FieldViolation> & Required<Omit<FieldViolation, never>>) => FieldViolation;
3508
- defaults: () => Partial<FieldViolation>;
3662
+ export declare const Reference: Readonly<{
3663
+ create: (partial: Partial<Reference> & Required<Omit<Reference, "format" | "ranges">>) => Reference;
3664
+ new: (partial: Partial<Reference> & Required<Omit<Reference, "format" | "ranges">>) => Reference;
3665
+ defaults: () => Partial<Reference>;
3666
+ }>;
3667
+ /**
3668
+ * The query a repository answers from the content: `matches/byReference` when `reference` is
3669
+ * stated, so nothing is uploaded, else `matches/byContent` with the asset in the request.
3670
+ */
3671
+ export type Content = {
3672
+ when: ContentWhen;
3673
+ /**
3674
+ * Where each repository downloads the asset from.
3675
+ */
3676
+ reference?: Reference;
3677
+ /**
3678
+ * The largest asset an upload sends, in bytes; a larger one is reported `TooLarge`.
3679
+ */
3680
+ maxUploadBytes: bigint;
3681
+ };
3682
+ /**
3683
+ * Generated factory for {@link Content} record objects.
3684
+ */
3685
+ export declare const Content: Readonly<{
3686
+ create: (partial: Partial<Content> & Required<Omit<Content, "maxUploadBytes" | "reference">>) => Content;
3687
+ new: (partial: Partial<Content> & Required<Omit<Content, "maxUploadBytes" | "reference">>) => Content;
3688
+ defaults: () => Partial<Content>;
3509
3689
  }>;
3510
3690
  /**
3511
3691
  * Whether a code is a success, an informational note, or a failure.
@@ -3542,23 +3722,23 @@ export declare const ValidationCode: Readonly<{
3542
3722
  /**
3543
3723
  * A session signing key from the init manifest's roster (spec §19.4.4).
3544
3724
  */
3545
- export type SessionKeySummary = {
3725
+ export type SessionKey = {
3546
3726
  /**
3547
3727
  * Identifier of the session signing key.
3548
3728
  */
3549
- keyId: ArrayBuffer;
3729
+ kid: ArrayBuffer;
3550
3730
  /**
3551
3731
  * The session key's public half (SEC1-encoded bytes).
3552
3732
  */
3553
3733
  publicKey: ArrayBuffer;
3554
3734
  };
3555
3735
  /**
3556
- * Generated factory for {@link SessionKeySummary} record objects.
3736
+ * Generated factory for {@link SessionKey} record objects.
3557
3737
  */
3558
- export declare const SessionKeySummary: Readonly<{
3559
- create: (partial: Partial<SessionKeySummary> & Required<Omit<SessionKeySummary, never>>) => SessionKeySummary;
3560
- new: (partial: Partial<SessionKeySummary> & Required<Omit<SessionKeySummary, never>>) => SessionKeySummary;
3561
- defaults: () => Partial<SessionKeySummary>;
3738
+ export declare const SessionKey: Readonly<{
3739
+ create: (partial: Partial<SessionKey> & Required<Omit<SessionKey, never>>) => SessionKey;
3740
+ new: (partial: Partial<SessionKey> & Required<Omit<SessionKey, never>>) => SessionKey;
3741
+ defaults: () => Partial<SessionKey>;
3562
3742
  }>;
3563
3743
  /**
3564
3744
  * Outcome of validating a stream's init segment.
@@ -3575,7 +3755,7 @@ export type InitValidation = {
3575
3755
  * The init segment's c2pa manifest store.
3576
3756
  */
3577
3757
  manifest: ManifestStore;
3578
- sessionKeys: Array<SessionKeySummary>;
3758
+ sessionKeys: Array<SessionKey>;
3579
3759
  };
3580
3760
  /**
3581
3761
  * Generated factory for {@link InitValidation} record objects.
@@ -3586,37 +3766,36 @@ export declare const InitValidation: Readonly<{
3586
3766
  defaults: () => Partial<InitValidation>;
3587
3767
  }>;
3588
3768
  /**
3589
- * Timing facts carried by a media segment's container.
3769
+ * Timing a media segment's container carries.
3590
3770
  */
3591
3771
  export type SegmentTiming = {
3592
3772
  /**
3593
- * Media segment sequence number (exact below 2^53).
3594
- */
3595
- sequenceNumber: bigint;
3596
- /**
3597
- * MP4 timescale (ticks per second) for this segment's timing, if present.
3773
+ * The segment's `sequenceNumber` (exact below 2^53).
3598
3774
  */
3599
- timescale?: number;
3775
+ sequence: bigint;
3600
3776
  /**
3601
- * Segment duration in seconds, if the container reports it.
3777
+ * The span its C2PA `emsg` covers.
3602
3778
  */
3603
- eventDurationSecs?: number;
3779
+ duration?: number;
3604
3780
  };
3605
3781
  /**
3606
3782
  * Generated factory for {@link SegmentTiming} record objects.
3607
3783
  */
3608
3784
  export declare const SegmentTiming: Readonly<{
3609
- create: (partial: Partial<SegmentTiming> & Required<Omit<SegmentTiming, "eventDurationSecs" | "timescale">>) => SegmentTiming;
3610
- new: (partial: Partial<SegmentTiming> & Required<Omit<SegmentTiming, "eventDurationSecs" | "timescale">>) => SegmentTiming;
3785
+ create: (partial: Partial<SegmentTiming> & Required<Omit<SegmentTiming, "duration">>) => SegmentTiming;
3786
+ new: (partial: Partial<SegmentTiming> & Required<Omit<SegmentTiming, "duration">>) => SegmentTiming;
3611
3787
  defaults: () => Partial<SegmentTiming>;
3612
3788
  }>;
3613
3789
  /**
3614
3790
  * Outcome of validating a media segment against its stream's init.
3615
3791
  */
3616
3792
  export type MediaValidation = {
3617
- valid: boolean;
3793
+ /**
3794
+ * `Invalid` on any failure, else the state of the init manifest the segment's key came from.
3795
+ */
3796
+ state: ValidationState;
3618
3797
  codes: Array<ValidationCode>;
3619
- keyId: ArrayBuffer;
3798
+ kid: ArrayBuffer;
3620
3799
  timing: SegmentTiming;
3621
3800
  manifestId: string;
3622
3801
  };
@@ -3629,7 +3808,7 @@ export declare const MediaValidation: Readonly<{
3629
3808
  defaults: () => Partial<MediaValidation>;
3630
3809
  }>;
3631
3810
  /**
3632
- * When [`AssetVerifier::verify_asset`] queries the repository.
3811
+ * When a verify asks the repositories.
3633
3812
  */
3634
3813
  export declare enum RecoveryTrigger {
3635
3814
  /**
@@ -3649,551 +3828,222 @@ export declare enum RecoveryTrigger {
3649
3828
  * It queries the repository on every verify, without making it load-bearing on the asset's own
3650
3829
  * credential: the flow provides information about a substitution rather than gating the local
3651
3830
  * manifest, so a repository that cannot be reached leaves [`RecoveryStatus::Incomplete`], the
3652
- * reason as a [`RecoveryIssue`], and [`GoldenComparison::RecoveryIncomplete`]. A caller for whom a
3653
- * cross-check that never ran must not pass for agreement branches on that status.
3831
+ * reason as a [`RecoveryIssue`], and no [`Golden`]. A caller for whom a cross-check that never
3832
+ * ran must not pass for agreement branches on that status.
3654
3833
  */
3655
3834
  Always = 1
3656
3835
  }
3657
3836
  /**
3658
- * A canonical gRPC/Connect status code: the coarse, closed failure class.
3659
- *
3660
- * The wasm lane projects this as a camelCase string like every other tagged value
3661
- * there, so a consumer narrows on `err.code === "resourceExhausted"`; the native lane
3662
- * projects an enum.
3837
+ * Computes one soft-binding algorithm's values from an asset (a fingerprint calculated, a
3838
+ * watermark detected). `[]` is "no value here"; an error is "no trustworthy answer", so a failed
3839
+ * engine never reads as an unmarked asset.
3663
3840
  */
3664
- export declare enum Code {
3665
- Canceled = 0,
3666
- Unknown = 1,
3667
- InvalidArgument = 2,
3668
- DeadlineExceeded = 3,
3669
- NotFound = 4,
3670
- AlreadyExists = 5,
3671
- PermissionDenied = 6,
3672
- ResourceExhausted = 7,
3673
- FailedPrecondition = 8,
3674
- Aborted = 9,
3675
- OutOfRange = 10,
3676
- Unimplemented = 11,
3677
- Internal = 12,
3678
- Unavailable = 13,
3679
- DataLoss = 14,
3680
- Unauthenticated = 15
3841
+ export interface Compute {
3842
+ /**
3843
+ * The C2PA soft-binding algorithm list label, e.g. `io.iscc.v0`.
3844
+ */
3845
+ alg(): string;
3846
+ compute(request: ComputeRequest, asyncOpts_?: {
3847
+ signal: AbortSignal;
3848
+ }): Promise<Array<Block>>;
3681
3849
  }
3682
- export declare enum SdkError_Tags {
3683
- Reason = "Reason",
3684
- Invalid = "Invalid",
3685
- Status = "Status"
3850
+ /**
3851
+ * Computes one soft-binding algorithm's values from an asset (a fingerprint calculated, a
3852
+ * watermark detected). `[]` is "no value here"; an error is "no trustworthy answer", so a failed
3853
+ * engine never reads as an unmarked asset.
3854
+ */
3855
+ export declare class ComputeImpl extends UniffiAbstractObject implements Compute {
3856
+ readonly [uniffiTypeNameSymbol] = "ComputeImpl";
3857
+ readonly [destructorGuardSymbol]: UniffiGcObject;
3858
+ readonly [pointerLiteralSymbol]: UniffiHandle;
3859
+ private constructor();
3860
+ /**
3861
+ * The C2PA soft-binding algorithm list label, e.g. `io.iscc.v0`.
3862
+ */
3863
+ alg(): string;
3864
+ compute(request: ComputeRequest, asyncOpts_?: {
3865
+ signal: AbortSignal;
3866
+ }): Promise<Array<Block>>;
3867
+ uniffiDestroy(): void;
3868
+ static instanceOf(obj_: any): obj_ is ComputeImpl;
3869
+ }
3870
+ export declare enum SoftBindingSource_Tags {
3871
+ Builtin = "Builtin",
3872
+ Held = "Held",
3873
+ Custom = "Custom"
3686
3874
  }
3687
3875
  /**
3688
- * The error every SDK call throws: a decoded `google.rpc.Status`, discriminated
3689
- * as a semantic reason, a request validation, or a bare status. `code` and `message`
3690
- * are common to every variant.
3876
+ * Where one byBinding query's value comes from.
3691
3877
  */
3692
- export declare const SdkError: Readonly<{
3693
- instanceOf: (obj: any) => obj is SdkError;
3694
- Reason: {
3695
- new (inner: {
3696
- code: Code;
3697
- message: string;
3698
- reason: string;
3699
- domain: string;
3700
- metadata: Map<string, string>;
3701
- }): {
3702
- /**
3703
- * @private
3704
- * This field is private and should not be used, use `tag` instead.
3705
- */
3706
- readonly [uniffiTypeNameSymbol]: "SdkError";
3707
- readonly tag: SdkError_Tags.Reason;
3708
- readonly inner: Readonly<{
3709
- code: Code;
3710
- message: string;
3711
- reason: string;
3712
- domain: string;
3713
- metadata: Map<string, string>;
3714
- }>;
3715
- name: string;
3716
- message: string;
3717
- stack?: string;
3718
- cause?: unknown;
3719
- };
3720
- "new"(inner: {
3721
- code: Code;
3722
- message: string;
3723
- reason: string;
3724
- domain: string;
3725
- metadata: Map<string, string>;
3726
- }): {
3727
- /**
3728
- * @private
3729
- * This field is private and should not be used, use `tag` instead.
3730
- */
3731
- readonly [uniffiTypeNameSymbol]: "SdkError";
3732
- readonly tag: SdkError_Tags.Reason;
3733
- readonly inner: Readonly<{
3734
- code: Code;
3735
- message: string;
3736
- reason: string;
3737
- domain: string;
3738
- metadata: Map<string, string>;
3739
- }>;
3740
- name: string;
3741
- message: string;
3742
- stack?: string;
3743
- cause?: unknown;
3744
- };
3745
- instanceOf(obj: any): obj is {
3746
- /**
3747
- * @private
3748
- * This field is private and should not be used, use `tag` instead.
3749
- */
3750
- readonly [uniffiTypeNameSymbol]: "SdkError";
3751
- readonly tag: SdkError_Tags.Reason;
3752
- readonly inner: Readonly<{
3753
- code: Code;
3754
- message: string;
3755
- reason: string;
3756
- domain: string;
3757
- metadata: Map<string, string>;
3758
- }>;
3759
- name: string;
3760
- message: string;
3761
- stack?: string;
3762
- cause?: unknown;
3763
- };
3764
- hasInner(obj: any): obj is {
3765
- /**
3766
- * @private
3767
- * This field is private and should not be used, use `tag` instead.
3768
- */
3769
- readonly [uniffiTypeNameSymbol]: "SdkError";
3770
- readonly tag: SdkError_Tags.Reason;
3771
- readonly inner: Readonly<{
3772
- code: Code;
3773
- message: string;
3774
- reason: string;
3775
- domain: string;
3776
- metadata: Map<string, string>;
3777
- }>;
3778
- name: string;
3779
- message: string;
3780
- stack?: string;
3781
- cause?: unknown;
3782
- };
3783
- getInner(obj: {
3784
- /**
3785
- * @private
3786
- * This field is private and should not be used, use `tag` instead.
3787
- */
3788
- readonly [uniffiTypeNameSymbol]: "SdkError";
3789
- readonly tag: SdkError_Tags.Reason;
3790
- readonly inner: Readonly<{
3791
- code: Code;
3792
- message: string;
3793
- reason: string;
3794
- domain: string;
3795
- metadata: Map<string, string>;
3796
- }>;
3797
- name: string;
3798
- message: string;
3799
- stack?: string;
3800
- cause?: unknown;
3801
- }): Readonly<{
3802
- code: Code;
3803
- message: string;
3804
- reason: string;
3805
- domain: string;
3806
- metadata: Map<string, string>;
3807
- }>;
3808
- captureStackTrace(targetObject: object, constructorOpt?: Function): void;
3809
- prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
3810
- stackTraceLimit: number;
3811
- };
3812
- Invalid: {
3878
+ export declare const SoftBindingSource: Readonly<{
3879
+ instanceOf: (obj: any) => obj is SoftBindingSource;
3880
+ Builtin: {
3813
3881
  new (inner: {
3814
- code: Code;
3815
- message: string;
3816
- fieldViolations: Array<FieldViolation>;
3817
- }): {
3818
- /**
3819
- * @private
3820
- * This field is private and should not be used, use `tag` instead.
3821
- */
3822
- readonly [uniffiTypeNameSymbol]: "SdkError";
3823
- readonly tag: SdkError_Tags.Invalid;
3824
- readonly inner: Readonly<{
3825
- code: Code;
3826
- message: string;
3827
- fieldViolations: Array<FieldViolation>;
3828
- }>;
3829
- name: string;
3830
- message: string;
3831
- stack?: string;
3832
- cause?: unknown;
3833
- };
3834
- "new"(inner: {
3835
- code: Code;
3836
- message: string;
3837
- fieldViolations: Array<FieldViolation>;
3838
- }): {
3839
- /**
3840
- * @private
3841
- * This field is private and should not be used, use `tag` instead.
3842
- */
3843
- readonly [uniffiTypeNameSymbol]: "SdkError";
3844
- readonly tag: SdkError_Tags.Invalid;
3845
- readonly inner: Readonly<{
3846
- code: Code;
3847
- message: string;
3848
- fieldViolations: Array<FieldViolation>;
3849
- }>;
3850
- name: string;
3851
- message: string;
3852
- stack?: string;
3853
- cause?: unknown;
3854
- };
3855
- instanceOf(obj: any): obj is {
3882
+ alg: string;
3883
+ }): {
3856
3884
  /**
3857
3885
  * @private
3858
3886
  * This field is private and should not be used, use `tag` instead.
3859
3887
  */
3860
- readonly [uniffiTypeNameSymbol]: "SdkError";
3861
- readonly tag: SdkError_Tags.Invalid;
3888
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3889
+ readonly tag: SoftBindingSource_Tags.Builtin;
3862
3890
  readonly inner: Readonly<{
3863
- code: Code;
3864
- message: string;
3865
- fieldViolations: Array<FieldViolation>;
3891
+ alg: string;
3866
3892
  }>;
3867
- name: string;
3868
- message: string;
3869
- stack?: string;
3870
- cause?: unknown;
3871
3893
  };
3872
- hasInner(obj: any): obj is {
3894
+ "new"(inner: {
3895
+ alg: string;
3896
+ }): {
3873
3897
  /**
3874
3898
  * @private
3875
3899
  * This field is private and should not be used, use `tag` instead.
3876
3900
  */
3877
- readonly [uniffiTypeNameSymbol]: "SdkError";
3878
- readonly tag: SdkError_Tags.Invalid;
3901
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3902
+ readonly tag: SoftBindingSource_Tags.Builtin;
3879
3903
  readonly inner: Readonly<{
3880
- code: Code;
3881
- message: string;
3882
- fieldViolations: Array<FieldViolation>;
3904
+ alg: string;
3883
3905
  }>;
3884
- name: string;
3885
- message: string;
3886
- stack?: string;
3887
- cause?: unknown;
3888
3906
  };
3889
- getInner(obj: {
3907
+ instanceOf(obj: any): obj is {
3890
3908
  /**
3891
3909
  * @private
3892
3910
  * This field is private and should not be used, use `tag` instead.
3893
3911
  */
3894
- readonly [uniffiTypeNameSymbol]: "SdkError";
3895
- readonly tag: SdkError_Tags.Invalid;
3912
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3913
+ readonly tag: SoftBindingSource_Tags.Builtin;
3896
3914
  readonly inner: Readonly<{
3897
- code: Code;
3898
- message: string;
3899
- fieldViolations: Array<FieldViolation>;
3915
+ alg: string;
3900
3916
  }>;
3901
- name: string;
3902
- message: string;
3903
- stack?: string;
3904
- cause?: unknown;
3905
- }): Readonly<{
3906
- code: Code;
3907
- message: string;
3908
- fieldViolations: Array<FieldViolation>;
3909
- }>;
3910
- captureStackTrace(targetObject: object, constructorOpt?: Function): void;
3911
- prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
3912
- stackTraceLimit: number;
3917
+ };
3913
3918
  };
3914
- Status: {
3919
+ Held: {
3915
3920
  new (inner: {
3916
- code: Code;
3917
- message: string;
3921
+ alg: string;
3922
+ value: ArrayBuffer;
3918
3923
  }): {
3919
3924
  /**
3920
3925
  * @private
3921
3926
  * This field is private and should not be used, use `tag` instead.
3922
3927
  */
3923
- readonly [uniffiTypeNameSymbol]: "SdkError";
3924
- readonly tag: SdkError_Tags.Status;
3928
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3929
+ readonly tag: SoftBindingSource_Tags.Held;
3925
3930
  readonly inner: Readonly<{
3926
- code: Code;
3927
- message: string;
3931
+ alg: string;
3932
+ value: ArrayBuffer;
3928
3933
  }>;
3929
- name: string;
3930
- message: string;
3931
- stack?: string;
3932
- cause?: unknown;
3933
3934
  };
3934
3935
  "new"(inner: {
3935
- code: Code;
3936
- message: string;
3936
+ alg: string;
3937
+ value: ArrayBuffer;
3937
3938
  }): {
3938
3939
  /**
3939
3940
  * @private
3940
3941
  * This field is private and should not be used, use `tag` instead.
3941
3942
  */
3942
- readonly [uniffiTypeNameSymbol]: "SdkError";
3943
- readonly tag: SdkError_Tags.Status;
3943
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3944
+ readonly tag: SoftBindingSource_Tags.Held;
3944
3945
  readonly inner: Readonly<{
3945
- code: Code;
3946
- message: string;
3946
+ alg: string;
3947
+ value: ArrayBuffer;
3947
3948
  }>;
3948
- name: string;
3949
- message: string;
3950
- stack?: string;
3951
- cause?: unknown;
3952
3949
  };
3953
3950
  instanceOf(obj: any): obj is {
3954
3951
  /**
3955
3952
  * @private
3956
3953
  * This field is private and should not be used, use `tag` instead.
3957
3954
  */
3958
- readonly [uniffiTypeNameSymbol]: "SdkError";
3959
- readonly tag: SdkError_Tags.Status;
3955
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3956
+ readonly tag: SoftBindingSource_Tags.Held;
3960
3957
  readonly inner: Readonly<{
3961
- code: Code;
3962
- message: string;
3958
+ alg: string;
3959
+ value: ArrayBuffer;
3963
3960
  }>;
3964
- name: string;
3965
- message: string;
3966
- stack?: string;
3967
- cause?: unknown;
3968
3961
  };
3969
- hasInner(obj: any): obj is {
3962
+ };
3963
+ Custom: {
3964
+ new (inner: {
3965
+ compute: Compute;
3966
+ }): {
3970
3967
  /**
3971
3968
  * @private
3972
3969
  * This field is private and should not be used, use `tag` instead.
3973
3970
  */
3974
- readonly [uniffiTypeNameSymbol]: "SdkError";
3975
- readonly tag: SdkError_Tags.Status;
3971
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3972
+ readonly tag: SoftBindingSource_Tags.Custom;
3976
3973
  readonly inner: Readonly<{
3977
- code: Code;
3978
- message: string;
3974
+ compute: Compute;
3979
3975
  }>;
3980
- name: string;
3981
- message: string;
3982
- stack?: string;
3983
- cause?: unknown;
3984
3976
  };
3985
- getInner(obj: {
3977
+ "new"(inner: {
3978
+ compute: Compute;
3979
+ }): {
3986
3980
  /**
3987
3981
  * @private
3988
3982
  * This field is private and should not be used, use `tag` instead.
3989
3983
  */
3990
- readonly [uniffiTypeNameSymbol]: "SdkError";
3991
- readonly tag: SdkError_Tags.Status;
3984
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3985
+ readonly tag: SoftBindingSource_Tags.Custom;
3992
3986
  readonly inner: Readonly<{
3993
- code: Code;
3994
- message: string;
3987
+ compute: Compute;
3995
3988
  }>;
3996
- name: string;
3997
- message: string;
3998
- stack?: string;
3999
- cause?: unknown;
4000
- }): Readonly<{
4001
- code: Code;
4002
- message: string;
4003
- }>;
4004
- captureStackTrace(targetObject: object, constructorOpt?: Function): void;
4005
- prepareStackTrace(err: Error, stackTraces: NodeJS.CallSite[]): any;
4006
- stackTraceLimit: number;
3989
+ };
3990
+ instanceOf(obj: any): obj is {
3991
+ /**
3992
+ * @private
3993
+ * This field is private and should not be used, use `tag` instead.
3994
+ */
3995
+ readonly [uniffiTypeNameSymbol]: "SoftBindingSource";
3996
+ readonly tag: SoftBindingSource_Tags.Custom;
3997
+ readonly inner: Readonly<{
3998
+ compute: Compute;
3999
+ }>;
4000
+ };
4007
4001
  };
4008
4002
  }>;
4009
4003
  /**
4010
- * The error every SDK call throws: a decoded `google.rpc.Status`, discriminated
4011
- * as a semantic reason, a request validation, or a bare status. `code` and `message`
4012
- * are common to every variant.
4013
- */
4014
- export type SdkError = InstanceType<typeof SdkError['Reason' | 'Invalid' | 'Status']>;
4015
- /**
4016
- * The host-supplied ranged reader: `length()` returns the asset size in bytes, `read_at`
4017
- * reads `length` bytes starting at `offset`. Each call crosses the FFI boundary, and the
4018
- * caller controls the backing store (memory, file, S3, HTTP, custom).
4019
- *
4020
- * # Both methods are async
4021
- *
4022
- * Because storage is: an object store is a round trip, and so is anything behind `fetch`. A
4023
- * synchronous `read_at` forces every such caller to make the asset local first, which is a
4024
- * whole copy of a file that may be hundreds of gigabytes, to answer reads the SDK was going to
4025
- * make one window at a time anyway. Implement this over `aiobotocore`, an S3 client, a ranged
4026
- * `fetch`, or a plain file, and await whatever it takes.
4027
- *
4028
- * The SDK never calls back into the thread that called it (see [`task`](super::task)), so an
4029
- * implementation is free to be as slow as its storage is.
4030
- *
4031
- * # Both methods are fallible
4032
- *
4033
- * They have to be: an infallible `read_at` can only report a failed read as a short one, which
4034
- * is indistinguishable from a legitimate end of file, so an S3 timeout would silently verify or
4035
- * sign a truncated asset.
4036
- */
4037
- export interface RangeSource {
4038
- length(asyncOpts_?: {
4039
- signal: AbortSignal;
4040
- }): Promise<bigint>;
4041
- readAt(offset: bigint, length: number, asyncOpts_?: {
4042
- signal: AbortSignal;
4043
- }): Promise<ArrayBuffer>;
4044
- }
4045
- /**
4046
- * The host-supplied ranged reader: `length()` returns the asset size in bytes, `read_at`
4047
- * reads `length` bytes starting at `offset`. Each call crosses the FFI boundary, and the
4048
- * caller controls the backing store (memory, file, S3, HTTP, custom).
4049
- *
4050
- * # Both methods are async
4051
- *
4052
- * Because storage is: an object store is a round trip, and so is anything behind `fetch`. A
4053
- * synchronous `read_at` forces every such caller to make the asset local first, which is a
4054
- * whole copy of a file that may be hundreds of gigabytes, to answer reads the SDK was going to
4055
- * make one window at a time anyway. Implement this over `aiobotocore`, an S3 client, a ranged
4056
- * `fetch`, or a plain file, and await whatever it takes.
4057
- *
4058
- * The SDK never calls back into the thread that called it (see [`task`](super::task)), so an
4059
- * implementation is free to be as slow as its storage is.
4060
- *
4061
- * # Both methods are fallible
4062
- *
4063
- * They have to be: an infallible `read_at` can only report a failed read as a short one, which
4064
- * is indistinguishable from a legitimate end of file, so an S3 timeout would silently verify or
4065
- * sign a truncated asset.
4066
- */
4067
- export declare class RangeSourceImpl extends UniffiAbstractObject implements RangeSource {
4068
- readonly [uniffiTypeNameSymbol] = "RangeSourceImpl";
4069
- readonly [destructorGuardSymbol]: UniffiGcObject;
4070
- readonly [pointerLiteralSymbol]: UniffiHandle;
4071
- private constructor();
4072
- length(asyncOpts_?: {
4073
- signal: AbortSignal;
4074
- }): Promise<bigint>;
4075
- readAt(offset: bigint, length: number, asyncOpts_?: {
4076
- signal: AbortSignal;
4077
- }): Promise<ArrayBuffer>;
4078
- uniffiDestroy(): void;
4079
- static instanceOf(obj_: any): obj_ is RangeSourceImpl;
4080
- }
4081
- /**
4082
- * A soft-binding binder: how a recoverable binding is derived from an asset. Put these inside
4083
- * the issuer's manifest mode to sign and index under them, and pass them in verify options to
4084
- * recover. Implement it for an algorithm the SDK does not ship; the SDK's own are
4085
- * [`IsccBinder`] and [`HeldBinder`].
4086
- *
4087
- * `derive` answers this binder's binding for `source`, or `None` when there is none.
4088
- * `options.format` is how the asset's format is known. `None` and an error
4089
- * mean different things: `None` is "no binding here", an error is "the question could not be
4090
- * answered", so a binder that failed never reads as an unmarked asset.
4091
- */
4092
- export interface Binder {
4093
- derive(source: RangeSource, options: DeriveOptions, asyncOpts_?: {
4094
- signal: AbortSignal;
4095
- }): Promise<SoftBinding | undefined>;
4096
- }
4097
- /**
4098
- * A soft-binding binder: how a recoverable binding is derived from an asset. Put these inside
4099
- * the issuer's manifest mode to sign and index under them, and pass them in verify options to
4100
- * recover. Implement it for an algorithm the SDK does not ship; the SDK's own are
4101
- * [`IsccBinder`] and [`HeldBinder`].
4102
- *
4103
- * `derive` answers this binder's binding for `source`, or `None` when there is none.
4104
- * `options.format` is how the asset's format is known. `None` and an error
4105
- * mean different things: `None` is "no binding here", an error is "the question could not be
4106
- * answered", so a binder that failed never reads as an unmarked asset.
4004
+ * Where one byBinding query's value comes from.
4107
4005
  */
4108
- export declare class BinderImpl extends UniffiAbstractObject implements Binder {
4109
- readonly [uniffiTypeNameSymbol] = "BinderImpl";
4110
- readonly [destructorGuardSymbol]: UniffiGcObject;
4111
- readonly [pointerLiteralSymbol]: UniffiHandle;
4112
- private constructor();
4113
- derive(source: RangeSource, options: DeriveOptions, asyncOpts_?: {
4114
- signal: AbortSignal;
4115
- }): Promise<SoftBinding | undefined>;
4116
- uniffiDestroy(): void;
4117
- static instanceOf(obj_: any): obj_ is BinderImpl;
4118
- }
4006
+ export type SoftBindingSource = InstanceType<typeof SoftBindingSource['Builtin' | 'Held' | 'Custom']>;
4119
4007
  /**
4120
- * What one [`AssetVerifier::verify`] may do to recover a manifest: the binders this client
4121
- * derives for itself, decided into `matches/byBinding`, and one field per content operation,
4122
- * absent when not to be called. It needs a configured repository and at least one query.
4008
+ * What one [`AssetVerifier::verify`] may do to recover a manifest: the soft bindings this client
4009
+ * looks up itself through `matches/byBinding`, and the content query, absent when not to be
4010
+ * asked. It needs a configured repository and at least one query.
4123
4011
  */
4124
4012
  export type Recovery = {
4125
4013
  when: RecoveryTrigger;
4126
- binders: Array<Binder>;
4127
- byContent?: ByContent;
4128
- byReference?: ByReference;
4014
+ softBindings: Array<SoftBindingSource>;
4015
+ content?: Content;
4016
+ /**
4017
+ * The whole recovery's budget, every repository together, each request bounded by what
4018
+ * remains. Absent, 10 minutes; at most 2147483647 ms.
4019
+ */
4020
+ timeout?: number;
4129
4021
  };
4130
4022
  /**
4131
4023
  * Generated factory for {@link Recovery} record objects.
4132
4024
  */
4133
4025
  export declare const Recovery: Readonly<{
4134
- create: (partial: Partial<Recovery> & Required<Omit<Recovery, "byContent" | "byReference">>) => Recovery;
4135
- new: (partial: Partial<Recovery> & Required<Omit<Recovery, "byContent" | "byReference">>) => Recovery;
4026
+ create: (partial: Partial<Recovery> & Required<Omit<Recovery, "content" | "softBindings" | "timeout">>) => Recovery;
4027
+ new: (partial: Partial<Recovery> & Required<Omit<Recovery, "content" | "softBindings" | "timeout">>) => Recovery;
4136
4028
  defaults: () => Partial<Recovery>;
4137
4029
  }>;
4138
4030
  /**
4139
- * A byte range holding a bare C2PA manifest store, or reserved for one. A record of
4140
- * primitives, so a plugin in its OWN UniFFI namespace declares a structurally identical
4141
- * one and the two cross the boundary without sharing a Rust type.
4142
- */
4143
- export type Region = {
4144
- offset: bigint;
4145
- length: bigint;
4146
- };
4147
- /**
4148
- * Generated factory for {@link Region} record objects.
4149
- */
4150
- export declare const Region: Readonly<{
4151
- create: (partial: Partial<Region> & Required<Omit<Region, never>>) => Region;
4152
- new: (partial: Partial<Region> & Required<Omit<Region, never>>) => Region;
4153
- defaults: () => Partial<Region>;
4154
- }>;
4155
- /**
4156
- * Construction options for [`StreamVerifier::new`] (and the `StreamVerifier.create`
4157
- * JS binding). Every field is stated: nothing here is chosen on the caller's behalf.
4158
- *
4159
- * `#[binding]` derives the wasm shape (`trustC2paAnchors` camelCase) and,
4160
- * with `ffi`, a `uniffi::Record` for the native `StreamVerifier.create` binding, so there
4161
- * is no per-lane DTO copy. Off both lanes it is a plain struct.
4031
+ * What a stream verifier trusts, and how far a segment's clock may drift.
4162
4032
  */
4163
4033
  export type StreamVerifierOptions = {
4034
+ trust: Trust;
4164
4035
  /**
4165
- * PEM trust anchors for the manifest signers the caller trusts.
4036
+ * How far a segment's presentation time may sit outside its session key's validity period:
4037
+ * the encoder clock's allowance. Absent, 5 minutes. Compared in whole seconds.
4166
4038
  */
4167
- trustAnchors: Array<string>;
4168
- /**
4169
- * PEM trust anchors for the time-stamping authorities the caller trusts.
4170
- */
4171
- tsaTrustAnchors: Array<string>;
4172
- /**
4173
- * Also trust the bundled official C2PA anchors, manifest and TSA lists, beside the
4174
- * caller's. `false` trusts the caller's lists alone.
4175
- */
4176
- trustC2paAnchors: boolean;
4177
- /**
4178
- * Issuer DIDs whose CAWG identity (ICA) credentials count as validated, matched
4179
- * exactly against the credential issuer. Empty trusts no issuer: an identity assertion
4180
- * on the init segment's manifest then reports `cawg.ica.untrusted_issuer` and withholds
4181
- * `cawg.ica.credential_valid`.
4182
- */
4183
- trustedIcaIssuers: Array<string>;
4184
- /**
4185
- * How far a segment's timestamp may sit from wall-clock before it is rejected as
4186
- * skewed, in seconds: the deployment's own encoder-clock allowance, stated rather than
4187
- * assumed.
4188
- */
4189
- segmentSkewToleranceSecs: bigint;
4039
+ skewTolerance?: number;
4190
4040
  };
4191
4041
  /**
4192
4042
  * Generated factory for {@link StreamVerifierOptions} record objects.
4193
4043
  */
4194
4044
  export declare const StreamVerifierOptions: Readonly<{
4195
- create: (partial: Partial<StreamVerifierOptions> & Required<Omit<StreamVerifierOptions, never>>) => StreamVerifierOptions;
4196
- new: (partial: Partial<StreamVerifierOptions> & Required<Omit<StreamVerifierOptions, never>>) => StreamVerifierOptions;
4045
+ create: (partial: Partial<StreamVerifierOptions> & Required<Omit<StreamVerifierOptions, "skewTolerance">>) => StreamVerifierOptions;
4046
+ new: (partial: Partial<StreamVerifierOptions> & Required<Omit<StreamVerifierOptions, "skewTolerance">>) => StreamVerifierOptions;
4197
4047
  defaults: () => Partial<StreamVerifierOptions>;
4198
4048
  }>;
4199
4049
  export declare enum SegmentValidation_Tags {
@@ -4311,16 +4161,16 @@ export interface PluginReader {
4311
4161
  /**
4312
4162
  * Recognize the format from the real asset, or `None` to decline it.
4313
4163
  */
4314
- sniff(src: RangeSource, asyncOpts_?: {
4164
+ sniff(source: RangeSource, asyncOpts_?: {
4315
4165
  signal: AbortSignal;
4316
4166
  }): Promise<string | undefined>;
4317
4167
  /**
4318
4168
  * The manifest window(s), or empty when none is present. MUST be byte-identical
4319
4169
  * regardless of slot contents (empty at sign, filled after embed, zeroed after strip).
4320
4170
  */
4321
- locate(src: RangeSource, asyncOpts_?: {
4171
+ locate(source: RangeSource, asyncOpts_?: {
4322
4172
  signal: AbortSignal;
4323
- }): Promise<Array<Region>>;
4173
+ }): Promise<Array<ByteRange>>;
4324
4174
  }
4325
4175
  /**
4326
4176
  * A C2PA asset verifier bound to a trust configuration. Construct once, verify many.
@@ -4336,9 +4186,9 @@ export interface AssetVerifierLike {
4336
4186
  *
4337
4187
  * # Errors
4338
4188
  *
4339
- * `READER_INVALID` when the source can't be read/parsed, or a repository failure
4340
- * involving the asset backend, repository, or a fetched manifest. Local binder faults,
4341
- * refused queries, and skipped oversized uploads are retained in the recovery summary.
4189
+ * Recovery options that cannot run, `READER_INVALID` when the source can't be read or
4190
+ * parsed, and the backend's fault when it fails mid-read. Everything a repository answers
4191
+ * or fails to answer is in the recovery summary.
4342
4192
  */
4343
4193
  verify(source: RangeSource, recovery: Recovery | undefined, plugins: Array<PluginReader>, asyncOpts_?: {
4344
4194
  signal: AbortSignal;
@@ -4374,11 +4224,11 @@ export declare class AssetVerifier extends UniffiAbstractObject implements Asset
4374
4224
  *
4375
4225
  * # Errors
4376
4226
  *
4377
- * `READER_INVALID` when the source can't be read/parsed, or a repository failure
4378
- * involving the asset backend, repository, or a fetched manifest. Local binder faults,
4379
- * refused queries, and skipped oversized uploads are retained in the recovery summary.
4227
+ * Recovery options that cannot run, `READER_INVALID` when the source can't be read or
4228
+ * parsed, and the backend's fault when it fails mid-read. Everything a repository answers
4229
+ * or fails to answer is in the recovery summary.
4380
4230
  */
4381
- verify(source: RangeSource, recovery: Recovery | undefined, plugins: Array<PluginReader>, asyncOpts_?: {
4231
+ verify(source: RangeSource, recovery?: Recovery | undefined, plugins?: Array<PluginReader>, asyncOpts_?: {
4382
4232
  signal: AbortSignal;
4383
4233
  }): Promise<AssetVerification>;
4384
4234
  uniffiDestroy(): void;
@@ -4451,68 +4301,8 @@ export declare class FileSource extends UniffiAbstractObject implements FileSour
4451
4301
  static instanceOf(obj_: any): obj_ is FileSource;
4452
4302
  }
4453
4303
  /**
4454
- * A binding you already hold, such as an out-of-band video ISCC. Reads nothing.
4455
- */
4456
- export interface HeldBinderLike {
4457
- derive(source: RangeSource, options: DeriveOptions, asyncOpts_?: {
4458
- signal: AbortSignal;
4459
- }): Promise<SoftBinding | undefined>;
4460
- }
4461
- /**
4462
- * @deprecated Use `HeldBinderLike` instead.
4463
- */
4464
- export type HeldBinderInterface = HeldBinderLike;
4465
- /**
4466
- * A binding you already hold, such as an out-of-band video ISCC. Reads nothing.
4467
- */
4468
- export declare class HeldBinder extends UniffiAbstractObject implements HeldBinderLike {
4469
- readonly [uniffiTypeNameSymbol] = "HeldBinder";
4470
- readonly [destructorGuardSymbol]: UniffiGcObject;
4471
- readonly [pointerLiteralSymbol]: UniffiHandle;
4472
- /**
4473
- * # Errors
4474
- *
4475
- * A binding with an empty algorithm or value.
4476
- */
4477
- constructor(binding: SoftBinding);
4478
- derive(source: RangeSource, options: DeriveOptions, asyncOpts_?: {
4479
- signal: AbortSignal;
4480
- }): Promise<SoftBinding | undefined>;
4481
- uniffiDestroy(): void;
4482
- static instanceOf(obj_: any): obj_ is HeldBinder;
4483
- }
4484
- /**
4485
- * Local ISCC Image-Code for supported image formats.
4486
- */
4487
- export interface IsccBinderLike {
4488
- derive(source: RangeSource, options: DeriveOptions, asyncOpts_?: {
4489
- signal: AbortSignal;
4490
- }): Promise<SoftBinding | undefined>;
4491
- }
4492
- /**
4493
- * @deprecated Use `IsccBinderLike` instead.
4494
- */
4495
- export type IsccBinderInterface = IsccBinderLike;
4496
- /**
4497
- * Local ISCC Image-Code for supported image formats.
4498
- */
4499
- export declare class IsccBinder extends UniffiAbstractObject implements IsccBinderLike {
4500
- readonly [uniffiTypeNameSymbol] = "IsccBinder";
4501
- readonly [destructorGuardSymbol]: UniffiGcObject;
4502
- readonly [pointerLiteralSymbol]: UniffiHandle;
4503
- constructor();
4504
- derive(source: RangeSource, options: DeriveOptions, asyncOpts_?: {
4505
- signal: AbortSignal;
4506
- }): Promise<SoftBinding | undefined>;
4507
- uniffiDestroy(): void;
4508
- static instanceOf(obj_: any): obj_ is IsccBinder;
4509
- }
4510
- /**
4511
- * An in-memory [`RangeSource`], for a caller that already holds the whole asset as
4512
- * bytes and doesn't want to write a custom source. A **native** implementation of a
4513
- * `with_foreign` interface (`#[uniffi::export]` on the trait impl, not the foreign
4514
- * callback path), so the generated binding is a plain constructible object and a Python
4515
- * caller writes no subclass at all: `MemorySource(data)`.
4304
+ * An in-memory [`RangeSource`] for a caller that already holds the whole asset as bytes:
4305
+ * `MemorySource(data)`, no subclass.
4516
4306
  *
4517
4307
  * # Size ceiling
4518
4308
  *
@@ -4522,9 +4312,10 @@ export declare class IsccBinder extends UniffiAbstractObject implements IsccBind
4522
4312
  * [`RangeSource`] over a file handle for anything approaching that: the SDK only ever asks for
4523
4313
  * bounded ranges, so nothing else has to hold the asset.
4524
4314
  *
4525
- * Construction copies the whole asset across the boundary, on the calling thread: about 5ms for
4526
- * 10 MB, 315ms for 500 MB. That is the one part of a sign or verify the SDK cannot move off your
4527
- * thread, and neither a ranged source nor [`FileSource`] pays it.
4315
+ * Construction moves the whole asset across the boundary once, on the calling thread; the SDK
4316
+ * then holds what arrived and answers every read as a window into it. That crossing is the one
4317
+ * part of a sign or verify the SDK cannot move off your thread, and neither a ranged source nor
4318
+ * [`FileSource`] pays it.
4528
4319
  */
4529
4320
  export interface MemorySourceLike {
4530
4321
  length(asyncOpts_?: {
@@ -4539,11 +4330,8 @@ export interface MemorySourceLike {
4539
4330
  */
4540
4331
  export type MemorySourceInterface = MemorySourceLike;
4541
4332
  /**
4542
- * An in-memory [`RangeSource`], for a caller that already holds the whole asset as
4543
- * bytes and doesn't want to write a custom source. A **native** implementation of a
4544
- * `with_foreign` interface (`#[uniffi::export]` on the trait impl, not the foreign
4545
- * callback path), so the generated binding is a plain constructible object and a Python
4546
- * caller writes no subclass at all: `MemorySource(data)`.
4333
+ * An in-memory [`RangeSource`] for a caller that already holds the whole asset as bytes:
4334
+ * `MemorySource(data)`, no subclass.
4547
4335
  *
4548
4336
  * # Size ceiling
4549
4337
  *
@@ -4553,9 +4341,10 @@ export type MemorySourceInterface = MemorySourceLike;
4553
4341
  * [`RangeSource`] over a file handle for anything approaching that: the SDK only ever asks for
4554
4342
  * bounded ranges, so nothing else has to hold the asset.
4555
4343
  *
4556
- * Construction copies the whole asset across the boundary, on the calling thread: about 5ms for
4557
- * 10 MB, 315ms for 500 MB. That is the one part of a sign or verify the SDK cannot move off your
4558
- * thread, and neither a ranged source nor [`FileSource`] pays it.
4344
+ * Construction moves the whole asset across the boundary once, on the calling thread; the SDK
4345
+ * then holds what arrived and answers every read as a window into it. That crossing is the one
4346
+ * part of a sign or verify the SDK cannot move off your thread, and neither a ranged source nor
4347
+ * [`FileSource`] pays it.
4559
4348
  */
4560
4349
  export declare class MemorySource extends UniffiAbstractObject implements MemorySourceLike {
4561
4350
  readonly [uniffiTypeNameSymbol] = "MemorySource";
@@ -4582,8 +4371,8 @@ export declare class MemorySource extends UniffiAbstractObject implements Memory
4582
4371
  */
4583
4372
  export interface StreamSessionLike {
4584
4373
  /**
4585
- * Everything this stream's init segments have registered, as CBOR for another node to
4586
- * [`resume`](StreamVerifier::resume) from.
4374
+ * This stream's id and everything its init segments have registered, as CBOR for another
4375
+ * node to [`resume`](StreamVerifier::resume) from.
4587
4376
  *
4588
4377
  * The one piece of stream state that leaves the SDK, and only because a clustered
4589
4378
  * verifier needs it: the init URL is overwritten on rotation, so a node joining during
@@ -4605,7 +4394,7 @@ export interface StreamSessionLike {
4605
4394
  * manifest, or when a media segment arrives before any init was processed for the
4606
4395
  * stream.
4607
4396
  */
4608
- validate(data: RangeSource, asyncOpts_?: {
4397
+ validate(source: RangeSource, asyncOpts_?: {
4609
4398
  signal: AbortSignal;
4610
4399
  }): Promise<SegmentValidation>;
4611
4400
  }
@@ -4623,8 +4412,8 @@ export declare class StreamSession extends UniffiAbstractObject implements Strea
4623
4412
  readonly [pointerLiteralSymbol]: UniffiHandle;
4624
4413
  private constructor();
4625
4414
  /**
4626
- * Everything this stream's init segments have registered, as CBOR for another node to
4627
- * [`resume`](StreamVerifier::resume) from.
4415
+ * This stream's id and everything its init segments have registered, as CBOR for another
4416
+ * node to [`resume`](StreamVerifier::resume) from.
4628
4417
  *
4629
4418
  * The one piece of stream state that leaves the SDK, and only because a clustered
4630
4419
  * verifier needs it: the init URL is overwritten on rotation, so a node joining during
@@ -4646,44 +4435,44 @@ export declare class StreamSession extends UniffiAbstractObject implements Strea
4646
4435
  * manifest, or when a media segment arrives before any init was processed for the
4647
4436
  * stream.
4648
4437
  */
4649
- validate(data: RangeSource, asyncOpts_?: {
4438
+ validate(source: RangeSource, asyncOpts_?: {
4650
4439
  signal: AbortSignal;
4651
4440
  }): Promise<SegmentValidation>;
4652
4441
  uniffiDestroy(): void;
4653
4442
  static instanceOf(obj_: any): obj_ is StreamSession;
4654
4443
  }
4655
4444
  /**
4656
- * A live-stream verifier bound to a trust configuration. Construct once with
4445
+ * A stream verifier bound to a trust configuration. Construct once with
4657
4446
  * [`create`](Self::create), then [`open`](Self::open) a stream to feed segments to.
4658
4447
  */
4659
4448
  export interface StreamVerifierLike {
4660
4449
  /**
4661
- * Open `stream_id` for validation, handing back a [`StreamSession`] to feed
4662
- * segments to.
4450
+ * Open the stream `id` for validation, handing back a [`StreamSession`] to feed segments
4451
+ * to.
4663
4452
  *
4664
4453
  * No I/O: the handle carries the id so it cannot be mistyped or confused with another
4665
4454
  * stream's, and classification still happens per segment. Opening one id twice hands
4666
4455
  * back the same live session, so a caller that reconnects keeps the state its earlier
4667
4456
  * handle accumulated.
4668
4457
  */
4669
- open(streamId: string): StreamSessionLike;
4458
+ open(id: string): StreamSessionLike;
4670
4459
  /**
4671
- * Open `stream_id` on the state another node exported, merged into whatever this one
4672
- * holds for that id already.
4460
+ * Open the stream another node exported, its state merged into whatever this one holds
4461
+ * for that stream already.
4673
4462
  *
4674
4463
  * # Errors
4675
4464
  *
4676
- * `STREAM_INVALID` when `state` is not a value [`StreamSession::export`] produced,
4677
- * or carries a version this SDK no longer reads.
4465
+ * A field violation at `state` when it is not a value [`StreamSession::export`]
4466
+ * produced (`state.malformed`), or one of another export version (`state.version`).
4678
4467
  */
4679
- resume(streamId: string, state: ArrayBuffer): StreamSessionLike;
4468
+ resume(state: ArrayBuffer): StreamSessionLike;
4680
4469
  }
4681
4470
  /**
4682
4471
  * @deprecated Use `StreamVerifierLike` instead.
4683
4472
  */
4684
4473
  export type StreamVerifierInterface = StreamVerifierLike;
4685
4474
  /**
4686
- * A live-stream verifier bound to a trust configuration. Construct once with
4475
+ * A stream verifier bound to a trust configuration. Construct once with
4687
4476
  * [`create`](Self::create), then [`open`](Self::open) a stream to feed segments to.
4688
4477
  */
4689
4478
  export declare class StreamVerifier extends UniffiAbstractObject implements StreamVerifierLike {
@@ -4700,25 +4489,25 @@ export declare class StreamVerifier extends UniffiAbstractObject implements Stre
4700
4489
  */
4701
4490
  static create(options: StreamVerifierOptions): StreamVerifierLike;
4702
4491
  /**
4703
- * Open `stream_id` for validation, handing back a [`StreamSession`] to feed
4704
- * segments to.
4492
+ * Open the stream `id` for validation, handing back a [`StreamSession`] to feed segments
4493
+ * to.
4705
4494
  *
4706
4495
  * No I/O: the handle carries the id so it cannot be mistyped or confused with another
4707
4496
  * stream's, and classification still happens per segment. Opening one id twice hands
4708
4497
  * back the same live session, so a caller that reconnects keeps the state its earlier
4709
4498
  * handle accumulated.
4710
4499
  */
4711
- open(streamId: string): StreamSessionLike;
4500
+ open(id: string): StreamSessionLike;
4712
4501
  /**
4713
- * Open `stream_id` on the state another node exported, merged into whatever this one
4714
- * holds for that id already.
4502
+ * Open the stream another node exported, its state merged into whatever this one holds
4503
+ * for that stream already.
4715
4504
  *
4716
4505
  * # Errors
4717
4506
  *
4718
- * `STREAM_INVALID` when `state` is not a value [`StreamSession::export`] produced,
4719
- * or carries a version this SDK no longer reads.
4507
+ * A field violation at `state` when it is not a value [`StreamSession::export`]
4508
+ * produced (`state.malformed`), or one of another export version (`state.version`).
4720
4509
  */
4721
- resume(streamId: string, state: ArrayBuffer): StreamSessionLike;
4510
+ resume(state: ArrayBuffer): StreamSessionLike;
4722
4511
  uniffiDestroy(): void;
4723
4512
  static instanceOf(obj_: any): obj_ is StreamVerifier;
4724
4513
  }
@@ -4750,13 +4539,6 @@ declare const _default$1: Readonly<{
4750
4539
  lift(value: UniffiByteArray): AssertionMetadata;
4751
4540
  lower(value: AssertionMetadata, alloc: RustBufferAllocator): UniffiByteArray;
4752
4541
  };
4753
- FfiConverterTypeAssetFormat: {
4754
- readFromCursor(c: Cursor): AssetFormat;
4755
- writeIntoCursor(value: AssetFormat, c: Cursor): void;
4756
- allocationSize(value: AssetFormat): number;
4757
- lift(value: UniffiByteArray): AssetFormat;
4758
- lower(value: AssetFormat, alloc: RustBufferAllocator): UniffiByteArray;
4759
- };
4760
4542
  FfiConverterTypeAssetType: {
4761
4543
  readFromCursor(c: Cursor): AssetType;
4762
4544
  writeIntoCursor(value: AssetType, c: Cursor): void;
@@ -4779,20 +4561,19 @@ declare const _default$1: Readonly<{
4779
4561
  lift(value: UniffiByteArray): AssetVerifierOptions;
4780
4562
  lower(value: AssetVerifierOptions, alloc: RustBufferAllocator): UniffiByteArray;
4781
4563
  };
4782
- FfiConverterTypeBinder: FfiConverterObjectWithCallbacks<Binder>;
4783
- FfiConverterTypeByContent: {
4784
- readFromCursor(c: Cursor): ByContent;
4785
- writeIntoCursor(value: ByContent, c: Cursor): void;
4786
- allocationSize(value: ByContent): number;
4787
- lift(value: UniffiByteArray): ByContent;
4788
- lower(value: ByContent, alloc: RustBufferAllocator): UniffiByteArray;
4789
- };
4790
- FfiConverterTypeByReference: {
4791
- readFromCursor(c: Cursor): ByReference;
4792
- writeIntoCursor(value: ByReference, c: Cursor): void;
4793
- allocationSize(value: ByReference): number;
4794
- lift(value: UniffiByteArray): ByReference;
4795
- lower(value: ByReference, alloc: RustBufferAllocator): UniffiByteArray;
4564
+ FfiConverterTypeBlock: {
4565
+ readFromCursor(c: Cursor): Block;
4566
+ writeIntoCursor(value: Block, c: Cursor): void;
4567
+ allocationSize(value: Block): number;
4568
+ lift(value: UniffiByteArray): Block;
4569
+ lower(value: Block, alloc: RustBufferAllocator): UniffiByteArray;
4570
+ };
4571
+ FfiConverterTypeByteRange: {
4572
+ readFromCursor(c: Cursor): ByteRange;
4573
+ writeIntoCursor(value: ByteRange, c: Cursor): void;
4574
+ allocationSize(value: ByteRange): number;
4575
+ lift(value: UniffiByteArray): ByteRange;
4576
+ lower(value: ByteRange, alloc: RustBufferAllocator): UniffiByteArray;
4796
4577
  };
4797
4578
  FfiConverterTypeClaimGeneratorInfo: {
4798
4579
  readFromCursor(c: Cursor): ClaimGeneratorInfo;
@@ -4808,19 +4589,27 @@ declare const _default$1: Readonly<{
4808
4589
  lift(value: UniffiByteArray): Code;
4809
4590
  lower(value: Code, alloc: RustBufferAllocator): UniffiByteArray;
4810
4591
  };
4811
- FfiConverterTypeContentBindingClass: {
4812
- readFromCursor(c: Cursor): ContentBindingClass;
4813
- writeIntoCursor(value: ContentBindingClass, c: Cursor): void;
4814
- allocationSize(value: ContentBindingClass): number;
4815
- lift(value: UniffiByteArray): ContentBindingClass;
4816
- lower(value: ContentBindingClass, alloc: RustBufferAllocator): UniffiByteArray;
4817
- };
4818
- FfiConverterTypeContentTrigger: {
4819
- readFromCursor(c: Cursor): ContentTrigger;
4820
- writeIntoCursor(value: ContentTrigger, c: Cursor): void;
4821
- allocationSize(value: ContentTrigger): number;
4822
- lift(value: UniffiByteArray): ContentTrigger;
4823
- lower(value: ContentTrigger, alloc: RustBufferAllocator): UniffiByteArray;
4592
+ FfiConverterTypeCompute: FfiConverterObjectWithCallbacks<Compute>;
4593
+ FfiConverterTypeComputeRequest: {
4594
+ readFromCursor(c: Cursor): ComputeRequest;
4595
+ writeIntoCursor(value: ComputeRequest, c: Cursor): void;
4596
+ allocationSize(value: ComputeRequest): number;
4597
+ lift(value: UniffiByteArray): ComputeRequest;
4598
+ lower(value: ComputeRequest, alloc: RustBufferAllocator): UniffiByteArray;
4599
+ };
4600
+ FfiConverterTypeContent: {
4601
+ readFromCursor(c: Cursor): Content;
4602
+ writeIntoCursor(value: Content, c: Cursor): void;
4603
+ allocationSize(value: Content): number;
4604
+ lift(value: UniffiByteArray): Content;
4605
+ lower(value: Content, alloc: RustBufferAllocator): UniffiByteArray;
4606
+ };
4607
+ FfiConverterTypeContentWhen: {
4608
+ readFromCursor(c: Cursor): ContentWhen;
4609
+ writeIntoCursor(value: ContentWhen, c: Cursor): void;
4610
+ allocationSize(value: ContentWhen): number;
4611
+ lift(value: UniffiByteArray): ContentWhen;
4612
+ lower(value: ContentWhen, alloc: RustBufferAllocator): UniffiByteArray;
4824
4613
  };
4825
4614
  FfiConverterTypeCoordinate: {
4826
4615
  readFromCursor(c: Cursor): Coordinate;
@@ -4829,13 +4618,7 @@ declare const _default$1: Readonly<{
4829
4618
  lift(value: UniffiByteArray): Coordinate;
4830
4619
  lower(value: Coordinate, alloc: RustBufferAllocator): UniffiByteArray;
4831
4620
  };
4832
- FfiConverterTypeCredential: {
4833
- readFromCursor(c: Cursor): Credential;
4834
- writeIntoCursor(value: Credential, c: Cursor): void;
4835
- allocationSize(value: Credential): number;
4836
- lift(value: UniffiByteArray): Credential;
4837
- lower(value: Credential, alloc: RustBufferAllocator): UniffiByteArray;
4838
- };
4621
+ FfiConverterTypeCredential: FfiConverterObject<CredentialLike>;
4839
4622
  FfiConverterTypeCredentialOrigin: {
4840
4623
  readFromCursor(c: Cursor): CredentialOrigin;
4841
4624
  writeIntoCursor(value: CredentialOrigin, c: Cursor): void;
@@ -4850,12 +4633,19 @@ declare const _default$1: Readonly<{
4850
4633
  lift(value: UniffiByteArray): DataSource;
4851
4634
  lower(value: DataSource, alloc: RustBufferAllocator): UniffiByteArray;
4852
4635
  };
4853
- FfiConverterTypeDeriveOptions: {
4854
- readFromCursor(c: Cursor): DeriveOptions;
4855
- writeIntoCursor(value: DeriveOptions, c: Cursor): void;
4856
- allocationSize(value: DeriveOptions): number;
4857
- lift(value: UniffiByteArray): DeriveOptions;
4858
- lower(value: DeriveOptions, alloc: RustBufferAllocator): UniffiByteArray;
4636
+ FfiConverterTypeDiscovery: {
4637
+ readFromCursor(c: Cursor): Discovery;
4638
+ writeIntoCursor(value: Discovery, c: Cursor): void;
4639
+ allocationSize(value: Discovery): number;
4640
+ lift(value: UniffiByteArray): Discovery;
4641
+ lower(value: Discovery, alloc: RustBufferAllocator): UniffiByteArray;
4642
+ };
4643
+ FfiConverterTypeDiscoveryVia: {
4644
+ readFromCursor(c: Cursor): DiscoveryVia;
4645
+ writeIntoCursor(value: DiscoveryVia, c: Cursor): void;
4646
+ allocationSize(value: DiscoveryVia): number;
4647
+ lift(value: UniffiByteArray): DiscoveryVia;
4648
+ lower(value: DiscoveryVia, alloc: RustBufferAllocator): UniffiByteArray;
4859
4649
  };
4860
4650
  FfiConverterTypeEndInclusivity: {
4861
4651
  readFromCursor(c: Cursor): EndInclusivity;
@@ -4886,12 +4676,12 @@ declare const _default$1: Readonly<{
4886
4676
  lift(value: UniffiByteArray): Frame;
4887
4677
  lower(value: Frame, alloc: RustBufferAllocator): UniffiByteArray;
4888
4678
  };
4889
- FfiConverterTypeGoldenComparison: {
4890
- readFromCursor(c: Cursor): GoldenComparison;
4891
- writeIntoCursor(value: GoldenComparison, c: Cursor): void;
4892
- allocationSize(value: GoldenComparison): number;
4893
- lift(value: UniffiByteArray): GoldenComparison;
4894
- lower(value: GoldenComparison, alloc: RustBufferAllocator): UniffiByteArray;
4679
+ FfiConverterTypeGolden: {
4680
+ readFromCursor(c: Cursor): Golden;
4681
+ writeIntoCursor(value: Golden, c: Cursor): void;
4682
+ allocationSize(value: Golden): number;
4683
+ lift(value: UniffiByteArray): Golden;
4684
+ lower(value: Golden, alloc: RustBufferAllocator): UniffiByteArray;
4895
4685
  };
4896
4686
  FfiConverterTypeHardBinding: {
4897
4687
  readFromCursor(c: Cursor): HardBinding;
@@ -4907,7 +4697,13 @@ declare const _default$1: Readonly<{
4907
4697
  lift(value: UniffiByteArray): HashedUri;
4908
4698
  lower(value: HashedUri, alloc: RustBufferAllocator): UniffiByteArray;
4909
4699
  };
4910
- FfiConverterTypeHeldBinder: FfiConverterObject<HeldBinderLike>;
4700
+ FfiConverterTypeHint: {
4701
+ readFromCursor(c: Cursor): Hint;
4702
+ writeIntoCursor(value: Hint, c: Cursor): void;
4703
+ allocationSize(value: Hint): number;
4704
+ lift(value: UniffiByteArray): Hint;
4705
+ lower(value: Hint, alloc: RustBufferAllocator): UniffiByteArray;
4706
+ };
4911
4707
  FfiConverterTypeIngredient: {
4912
4708
  readFromCursor(c: Cursor): Ingredient;
4913
4709
  writeIntoCursor(value: Ingredient, c: Cursor): void;
@@ -4929,7 +4725,6 @@ declare const _default$1: Readonly<{
4929
4725
  lift(value: UniffiByteArray): InitValidation;
4930
4726
  lower(value: InitValidation, alloc: RustBufferAllocator): UniffiByteArray;
4931
4727
  };
4932
- FfiConverterTypeIsccBinder: FfiConverterObject<IsccBinderLike>;
4933
4728
  FfiConverterTypeItem: {
4934
4729
  readFromCursor(c: Cursor): Item;
4935
4730
  writeIntoCursor(value: Item, c: Cursor): void;
@@ -5003,13 +4798,6 @@ declare const _default$1: Readonly<{
5003
4798
  lift(value: UniffiByteArray): Recovery;
5004
4799
  lower(value: Recovery, alloc: RustBufferAllocator): UniffiByteArray;
5005
4800
  };
5006
- FfiConverterTypeRecoveryDiscovery: {
5007
- readFromCursor(c: Cursor): RecoveryDiscovery;
5008
- writeIntoCursor(value: RecoveryDiscovery, c: Cursor): void;
5009
- allocationSize(value: RecoveryDiscovery): number;
5010
- lift(value: UniffiByteArray): RecoveryDiscovery;
5011
- lower(value: RecoveryDiscovery, alloc: RustBufferAllocator): UniffiByteArray;
5012
- };
5013
4801
  FfiConverterTypeRecoveryIssue: {
5014
4802
  readFromCursor(c: Cursor): RecoveryIssue;
5015
4803
  writeIntoCursor(value: RecoveryIssue, c: Cursor): void;
@@ -5038,12 +4826,12 @@ declare const _default$1: Readonly<{
5038
4826
  lift(value: UniffiByteArray): RecoveryTrigger;
5039
4827
  lower(value: RecoveryTrigger, alloc: RustBufferAllocator): UniffiByteArray;
5040
4828
  };
5041
- FfiConverterTypeRegion: {
5042
- readFromCursor(c: Cursor): Region;
5043
- writeIntoCursor(value: Region, c: Cursor): void;
5044
- allocationSize(value: Region): number;
5045
- lift(value: UniffiByteArray): Region;
5046
- lower(value: Region, alloc: RustBufferAllocator): UniffiByteArray;
4829
+ FfiConverterTypeReference: {
4830
+ readFromCursor(c: Cursor): Reference;
4831
+ writeIntoCursor(value: Reference, c: Cursor): void;
4832
+ allocationSize(value: Reference): number;
4833
+ lift(value: UniffiByteArray): Reference;
4834
+ lower(value: Reference, alloc: RustBufferAllocator): UniffiByteArray;
5047
4835
  };
5048
4836
  FfiConverterTypeRegionOfInterest: {
5049
4837
  readFromCursor(c: Cursor): RegionOfInterest;
@@ -5087,6 +4875,13 @@ declare const _default$1: Readonly<{
5087
4875
  lift(value: UniffiByteArray): Role;
5088
4876
  lower(value: Role, alloc: RustBufferAllocator): UniffiByteArray;
5089
4877
  };
4878
+ FfiConverterTypeScope: {
4879
+ readFromCursor(c: Cursor): Scope;
4880
+ writeIntoCursor(value: Scope, c: Cursor): void;
4881
+ allocationSize(value: Scope): number;
4882
+ lift(value: UniffiByteArray): Scope;
4883
+ lower(value: Scope, alloc: RustBufferAllocator): UniffiByteArray;
4884
+ };
5090
4885
  FfiConverterTypeSdkError: {
5091
4886
  readFromCursor(c: Cursor): SdkError;
5092
4887
  writeIntoCursor(value: SdkError, c: Cursor): void;
@@ -5108,12 +4903,12 @@ declare const _default$1: Readonly<{
5108
4903
  lift(value: UniffiByteArray): SegmentValidation;
5109
4904
  lower(value: SegmentValidation, alloc: RustBufferAllocator): UniffiByteArray;
5110
4905
  };
5111
- FfiConverterTypeSessionKeySummary: {
5112
- readFromCursor(c: Cursor): SessionKeySummary;
5113
- writeIntoCursor(value: SessionKeySummary, c: Cursor): void;
5114
- allocationSize(value: SessionKeySummary): number;
5115
- lift(value: UniffiByteArray): SessionKeySummary;
5116
- lower(value: SessionKeySummary, alloc: RustBufferAllocator): UniffiByteArray;
4906
+ FfiConverterTypeSessionKey: {
4907
+ readFromCursor(c: Cursor): SessionKey;
4908
+ writeIntoCursor(value: SessionKey, c: Cursor): void;
4909
+ allocationSize(value: SessionKey): number;
4910
+ lift(value: UniffiByteArray): SessionKey;
4911
+ lower(value: SessionKey, alloc: RustBufferAllocator): UniffiByteArray;
5117
4912
  };
5118
4913
  FfiConverterTypeShape: {
5119
4914
  readFromCursor(c: Cursor): Shape;
@@ -5144,12 +4939,19 @@ declare const _default$1: Readonly<{
5144
4939
  lower(value: SigningAlgSchema, alloc: RustBufferAllocator): UniffiByteArray;
5145
4940
  };
5146
4941
  FfiConverterTypeSimilarityScore: FfiConverter<number, number>;
5147
- FfiConverterTypeSoftBinding: {
5148
- readFromCursor(c: Cursor): SoftBinding;
5149
- writeIntoCursor(value: SoftBinding, c: Cursor): void;
5150
- allocationSize(value: SoftBinding): number;
5151
- lift(value: UniffiByteArray): SoftBinding;
5152
- lower(value: SoftBinding, alloc: RustBufferAllocator): UniffiByteArray;
4942
+ FfiConverterTypeSoftBindingSource: {
4943
+ readFromCursor(c: Cursor): SoftBindingSource;
4944
+ writeIntoCursor(value: SoftBindingSource, c: Cursor): void;
4945
+ allocationSize(value: SoftBindingSource): number;
4946
+ lift(value: UniffiByteArray): SoftBindingSource;
4947
+ lower(value: SoftBindingSource, alloc: RustBufferAllocator): UniffiByteArray;
4948
+ };
4949
+ FfiConverterTypeSoftBindingType: {
4950
+ readFromCursor(c: Cursor): SoftBindingType;
4951
+ writeIntoCursor(value: SoftBindingType, c: Cursor): void;
4952
+ allocationSize(value: SoftBindingType): number;
4953
+ lift(value: UniffiByteArray): SoftBindingType;
4954
+ lower(value: SoftBindingType, alloc: RustBufferAllocator): UniffiByteArray;
5153
4955
  };
5154
4956
  FfiConverterTypeStatusCodes: {
5155
4957
  readFromCursor(c: Cursor): StatusCodes;
@@ -5202,6 +5004,20 @@ declare const _default$1: Readonly<{
5202
5004
  lift(value: UniffiByteArray): TimeType;
5203
5005
  lower(value: TimeType, alloc: RustBufferAllocator): UniffiByteArray;
5204
5006
  };
5007
+ FfiConverterTypeTimespan: {
5008
+ readFromCursor(c: Cursor): Timespan;
5009
+ writeIntoCursor(value: Timespan, c: Cursor): void;
5010
+ allocationSize(value: Timespan): number;
5011
+ lift(value: UniffiByteArray): Timespan;
5012
+ lower(value: Timespan, alloc: RustBufferAllocator): UniffiByteArray;
5013
+ };
5014
+ FfiConverterTypeTrust: {
5015
+ readFromCursor(c: Cursor): Trust;
5016
+ writeIntoCursor(value: Trust, c: Cursor): void;
5017
+ allocationSize(value: Trust): number;
5018
+ lift(value: UniffiByteArray): Trust;
5019
+ lower(value: Trust, alloc: RustBufferAllocator): UniffiByteArray;
5020
+ };
5205
5021
  FfiConverterTypeUnitType: {
5206
5022
  readFromCursor(c: Cursor): UnitType;
5207
5023
  writeIntoCursor(value: UnitType, c: Cursor): void;