@trylimbo/sdk-verifier 0.3.0-canary.47 → 0.3.0-canary.50

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 +883 -902
  2. package/gen/ffi/index.js +1256 -1271
  3. package/package.json +6 -6
@@ -181,7 +181,7 @@ 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, 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, Region, RegionCoordinate, RegionForm, RegionForm_Tags, RegionOfInterest, RegionRange, RegionRange_Tags, RegionShape, RegionTextSelector, RegionTextSelectorRange, RegionUnit, Relationship, Repository, Repository_Tags, ResourceRef, ReviewRating, Scope, Scope_Tags, 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, Trust, UnitType, UriOrResource, UriOrResource_Tags, ValidationCode, ValidationCodeKind, ValidationResults, ValidationState, ValidationStatus, Verdict, VerdictRule, Verdict_Tags, c2paTrustList, c2paTsaTrustList, computeSoftBinding, _default$1 as default, devCa, parse, resource, tamperCodes };
184
+ export { Actor, AssertionMetadata, AssetType, AssetVerification, AssetVerifier, AssetVerifierInterface, AssetVerifierLike, AssetVerifierOptions, Block, ByteRange, ClaimGeneratorInfo, Code, Compute, ComputeImpl, ComputeRequest, Content, ContentWhen, Coordinate, Credential, CredentialInterface, CredentialLike, CredentialRef, CredentialRef_Tags, DataSource, Discovery, DiscoveryVia, DiscoveryVia_Tags, EndInclusivity, FieldViolation, FileSource, FileSourceInterface, FileSourceLike, FingerprintCheck, FingerprintCheck_Tags, Frame, HardBinding, HashedUri, Hint, Ingredient, IngredientDeltaValidationResult, InitValidation, Item, JsonValue, Lineage, Manifest, ManifestAssertion, ManifestAssertionKind, ManifestComparison, ManifestStore, MediaValidation, MemorySource, MemorySourceInterface, MemorySourceLike, PluginReader, Range, RangeSource, RangeSourceImpl, RangeType, Recovered, RecoveredCredential, Recovered_Tags, Recovery, RecoveryIssue, RecoveryIssue_Tags, RecoveryTrigger, Reference, Region, RegionCoordinate, RegionForm, RegionForm_Tags, RegionOfInterest, RegionRange, RegionRange_Tags, RegionShape, RegionTextSelector, RegionTextSelectorRange, RegionUnit, Relationship, Repository, Repository_Tags, ResourceRef, ReviewRating, Scope, Scope_Tags, 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, Trust, UnitType, UriOrResource, UriOrResource_Tags, ValidationCode, ValidationCodeKind, ValidationResults, ValidationState, ValidationStatus, Verdict, VerdictRule, Verdict_Tags, c2paTrustList, c2paTsaTrustList, computeSoftBinding, _default$1 as default, devCa, parse, resource, tamperCodes };
185
185
  }
186
186
  /**
187
187
  * The bundled C2PA Conformance Program signing-CA trust list (a release snapshot). Trusted by
@@ -1417,461 +1417,6 @@ export declare const ManifestStore: Readonly<{
1417
1417
  new: (partial: Partial<ManifestStore> & Required<Omit<ManifestStore, "activeManifest" | "validationResults" | "validationState" | "validationStatus">>) => ManifestStore;
1418
1418
  defaults: () => Partial<ManifestStore>;
1419
1419
  }>;
1420
- /**
1421
- * The value a content query was hinted with, under its own algorithm.
1422
- */
1423
- export type Hint = {
1424
- alg: string;
1425
- value: ArrayBuffer;
1426
- };
1427
- /**
1428
- * Generated factory for {@link Hint} record objects.
1429
- */
1430
- export declare const Hint: Readonly<{
1431
- create: (partial: Partial<Hint> & Required<Omit<Hint, never>>) => Hint;
1432
- new: (partial: Partial<Hint> & Required<Omit<Hint, never>>) => Hint;
1433
- defaults: () => Partial<Hint>;
1434
- }>;
1435
- export declare enum DiscoveryVia_Tags {
1436
- ByBinding = "ByBinding",
1437
- ByContent = "ByContent",
1438
- ByReference = "ByReference"
1439
- }
1440
- /**
1441
- * The Soft Binding Resolution API route a discovery came through.
1442
- */
1443
- export declare const DiscoveryVia: Readonly<{
1444
- instanceOf: (obj: any) => obj is DiscoveryVia;
1445
- ByBinding: {
1446
- new (inner: {
1447
- value: ArrayBuffer;
1448
- }): {
1449
- /**
1450
- * @private
1451
- * This field is private and should not be used, use `tag` instead.
1452
- */
1453
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1454
- readonly tag: DiscoveryVia_Tags.ByBinding;
1455
- readonly inner: Readonly<{
1456
- value: ArrayBuffer;
1457
- }>;
1458
- };
1459
- "new"(inner: {
1460
- value: ArrayBuffer;
1461
- }): {
1462
- /**
1463
- * @private
1464
- * This field is private and should not be used, use `tag` instead.
1465
- */
1466
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1467
- readonly tag: DiscoveryVia_Tags.ByBinding;
1468
- readonly inner: Readonly<{
1469
- value: ArrayBuffer;
1470
- }>;
1471
- };
1472
- instanceOf(obj: any): obj is {
1473
- /**
1474
- * @private
1475
- * This field is private and should not be used, use `tag` instead.
1476
- */
1477
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1478
- readonly tag: DiscoveryVia_Tags.ByBinding;
1479
- readonly inner: Readonly<{
1480
- value: ArrayBuffer;
1481
- }>;
1482
- };
1483
- };
1484
- ByContent: {
1485
- new (inner: {
1486
- hint?: Hint;
1487
- }): {
1488
- /**
1489
- * @private
1490
- * This field is private and should not be used, use `tag` instead.
1491
- */
1492
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1493
- readonly tag: DiscoveryVia_Tags.ByContent;
1494
- readonly inner: Readonly<{
1495
- hint?: Hint;
1496
- }>;
1497
- };
1498
- "new"(inner: {
1499
- hint?: Hint;
1500
- }): {
1501
- /**
1502
- * @private
1503
- * This field is private and should not be used, use `tag` instead.
1504
- */
1505
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1506
- readonly tag: DiscoveryVia_Tags.ByContent;
1507
- readonly inner: Readonly<{
1508
- hint?: Hint;
1509
- }>;
1510
- };
1511
- instanceOf(obj: any): obj is {
1512
- /**
1513
- * @private
1514
- * This field is private and should not be used, use `tag` instead.
1515
- */
1516
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1517
- readonly tag: DiscoveryVia_Tags.ByContent;
1518
- readonly inner: Readonly<{
1519
- hint?: Hint;
1520
- }>;
1521
- };
1522
- };
1523
- ByReference: {
1524
- new (inner: {
1525
- hint?: Hint;
1526
- }): {
1527
- /**
1528
- * @private
1529
- * This field is private and should not be used, use `tag` instead.
1530
- */
1531
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1532
- readonly tag: DiscoveryVia_Tags.ByReference;
1533
- readonly inner: Readonly<{
1534
- hint?: Hint;
1535
- }>;
1536
- };
1537
- "new"(inner: {
1538
- hint?: Hint;
1539
- }): {
1540
- /**
1541
- * @private
1542
- * This field is private and should not be used, use `tag` instead.
1543
- */
1544
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1545
- readonly tag: DiscoveryVia_Tags.ByReference;
1546
- readonly inner: Readonly<{
1547
- hint?: Hint;
1548
- }>;
1549
- };
1550
- instanceOf(obj: any): obj is {
1551
- /**
1552
- * @private
1553
- * This field is private and should not be used, use `tag` instead.
1554
- */
1555
- readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
1556
- readonly tag: DiscoveryVia_Tags.ByReference;
1557
- readonly inner: Readonly<{
1558
- hint?: Hint;
1559
- }>;
1560
- };
1561
- };
1562
- }>;
1563
- /**
1564
- * The Soft Binding Resolution API route a discovery came through.
1565
- */
1566
- export type DiscoveryVia = InstanceType<typeof DiscoveryVia['ByBinding' | 'ByContent' | 'ByReference']>;
1567
- /**
1568
- * The C2PA list's `type` of a soft binding algorithm.
1569
- */
1570
- export declare enum SoftBindingType {
1571
- Fingerprint = 0,
1572
- Watermark = 1
1573
- }
1574
- /**
1575
- * Typealias from the type name used in the UDL file to the builtin type. This
1576
- * is needed because the UDL type name is used in function/method signatures.
1577
- */
1578
- export type SimilarityScore = number;
1579
- /**
1580
- * One query that located a recovered credential: how it was asked, under which algorithm, and
1581
- * where the manifest came from.
1582
- */
1583
- export type Discovery = {
1584
- via: DiscoveryVia;
1585
- alg: string;
1586
- type: SoftBindingType;
1587
- /**
1588
- * The repository's `similarityScore`, 0-100.
1589
- */
1590
- score?: SimilarityScore;
1591
- repository: string;
1592
- endpoint?: string;
1593
- };
1594
- /**
1595
- * Generated factory for {@link Discovery} record objects.
1596
- */
1597
- export declare const Discovery: Readonly<{
1598
- create: (partial: Partial<Discovery> & Required<Omit<Discovery, "endpoint" | "score">>) => Discovery;
1599
- new: (partial: Partial<Discovery> & Required<Omit<Discovery, "endpoint" | "score">>) => Discovery;
1600
- defaults: () => Partial<Discovery>;
1601
- }>;
1602
- export declare enum FingerprintCheck_Tags {
1603
- NotNeeded = "NotNeeded",
1604
- Missing = "Missing",
1605
- Unsupported = "Unsupported",
1606
- Indeterminate = "Indeterminate",
1607
- Compared = "Compared"
1608
- }
1609
- /**
1610
- * Whether the asset's own fingerprint backs up a manifest that a watermark led to.
1611
- *
1612
- * C2PA 2.4 Soft Binding API section 1.2.2.3: a watermark can be lifted from one asset onto another, so a mark alone does
1613
- * not establish that the manifest it resolves to describes THIS asset. The mitigation the spec
1614
- * gives is to compare a fingerprint computed from the asset against the one the recovered
1615
- * manifest records, and `watermark-and-fingerprint` ends on exactly that comparison.
1616
- *
1617
- * Reported rather than enforced: a transcode legitimately shifts a fingerprint, so where the line
1618
- * falls is the relying party's policy, not this SDK's. What the SDK owes them is the measurement.
1619
- */
1620
- export declare const FingerprintCheck: Readonly<{
1621
- instanceOf: (obj: any) => obj is FingerprintCheck;
1622
- NotNeeded: {
1623
- new (): {
1624
- /**
1625
- * @private
1626
- * This field is private and should not be used, use `tag` instead.
1627
- */
1628
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1629
- readonly tag: FingerprintCheck_Tags.NotNeeded;
1630
- };
1631
- "new"(): {
1632
- /**
1633
- * @private
1634
- * This field is private and should not be used, use `tag` instead.
1635
- */
1636
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1637
- readonly tag: FingerprintCheck_Tags.NotNeeded;
1638
- };
1639
- instanceOf(obj: any): obj is {
1640
- /**
1641
- * @private
1642
- * This field is private and should not be used, use `tag` instead.
1643
- */
1644
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1645
- readonly tag: FingerprintCheck_Tags.NotNeeded;
1646
- };
1647
- };
1648
- Missing: {
1649
- new (): {
1650
- /**
1651
- * @private
1652
- * This field is private and should not be used, use `tag` instead.
1653
- */
1654
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1655
- readonly tag: FingerprintCheck_Tags.Missing;
1656
- };
1657
- "new"(): {
1658
- /**
1659
- * @private
1660
- * This field is private and should not be used, use `tag` instead.
1661
- */
1662
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1663
- readonly tag: FingerprintCheck_Tags.Missing;
1664
- };
1665
- instanceOf(obj: any): obj is {
1666
- /**
1667
- * @private
1668
- * This field is private and should not be used, use `tag` instead.
1669
- */
1670
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1671
- readonly tag: FingerprintCheck_Tags.Missing;
1672
- };
1673
- };
1674
- Unsupported: {
1675
- new (inner: {
1676
- alg: string;
1677
- }): {
1678
- /**
1679
- * @private
1680
- * This field is private and should not be used, use `tag` instead.
1681
- */
1682
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1683
- readonly tag: FingerprintCheck_Tags.Unsupported;
1684
- readonly inner: Readonly<{
1685
- alg: string;
1686
- }>;
1687
- };
1688
- "new"(inner: {
1689
- alg: string;
1690
- }): {
1691
- /**
1692
- * @private
1693
- * This field is private and should not be used, use `tag` instead.
1694
- */
1695
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1696
- readonly tag: FingerprintCheck_Tags.Unsupported;
1697
- readonly inner: Readonly<{
1698
- alg: string;
1699
- }>;
1700
- };
1701
- instanceOf(obj: any): obj is {
1702
- /**
1703
- * @private
1704
- * This field is private and should not be used, use `tag` instead.
1705
- */
1706
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1707
- readonly tag: FingerprintCheck_Tags.Unsupported;
1708
- readonly inner: Readonly<{
1709
- alg: string;
1710
- }>;
1711
- };
1712
- };
1713
- Indeterminate: {
1714
- new (): {
1715
- /**
1716
- * @private
1717
- * This field is private and should not be used, use `tag` instead.
1718
- */
1719
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1720
- readonly tag: FingerprintCheck_Tags.Indeterminate;
1721
- };
1722
- "new"(): {
1723
- /**
1724
- * @private
1725
- * This field is private and should not be used, use `tag` instead.
1726
- */
1727
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1728
- readonly tag: FingerprintCheck_Tags.Indeterminate;
1729
- };
1730
- instanceOf(obj: any): obj is {
1731
- /**
1732
- * @private
1733
- * This field is private and should not be used, use `tag` instead.
1734
- */
1735
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1736
- readonly tag: FingerprintCheck_Tags.Indeterminate;
1737
- };
1738
- };
1739
- Compared: {
1740
- new (inner: {
1741
- score: SimilarityScore;
1742
- }): {
1743
- /**
1744
- * @private
1745
- * This field is private and should not be used, use `tag` instead.
1746
- */
1747
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1748
- readonly tag: FingerprintCheck_Tags.Compared;
1749
- readonly inner: Readonly<{
1750
- score: SimilarityScore;
1751
- }>;
1752
- };
1753
- "new"(inner: {
1754
- score: SimilarityScore;
1755
- }): {
1756
- /**
1757
- * @private
1758
- * This field is private and should not be used, use `tag` instead.
1759
- */
1760
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1761
- readonly tag: FingerprintCheck_Tags.Compared;
1762
- readonly inner: Readonly<{
1763
- score: SimilarityScore;
1764
- }>;
1765
- };
1766
- instanceOf(obj: any): obj is {
1767
- /**
1768
- * @private
1769
- * This field is private and should not be used, use `tag` instead.
1770
- */
1771
- readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
1772
- readonly tag: FingerprintCheck_Tags.Compared;
1773
- readonly inner: Readonly<{
1774
- score: SimilarityScore;
1775
- }>;
1776
- };
1777
- };
1778
- }>;
1779
- /**
1780
- * Whether the asset's own fingerprint backs up a manifest that a watermark led to.
1781
- *
1782
- * C2PA 2.4 Soft Binding API section 1.2.2.3: a watermark can be lifted from one asset onto another, so a mark alone does
1783
- * not establish that the manifest it resolves to describes THIS asset. The mitigation the spec
1784
- * gives is to compare a fingerprint computed from the asset against the one the recovered
1785
- * manifest records, and `watermark-and-fingerprint` ends on exactly that comparison.
1786
- *
1787
- * Reported rather than enforced: a transcode legitimately shifts a fingerprint, so where the line
1788
- * falls is the relying party's policy, not this SDK's. What the SDK owes them is the measurement.
1789
- */
1790
- export type FingerprintCheck = InstanceType<typeof FingerprintCheck['NotNeeded' | 'Missing' | 'Unsupported' | 'Indeterminate' | 'Compared']>;
1791
- export declare enum CredentialOrigin_Tags {
1792
- Embedded = "Embedded",
1793
- Recovered = "Recovered"
1794
- }
1795
- /**
1796
- * Where a credential came from: embedded in the asset, or recovered from a repository.
1797
- */
1798
- export declare const CredentialOrigin: Readonly<{
1799
- instanceOf: (obj: any) => obj is CredentialOrigin;
1800
- Embedded: {
1801
- new (): {
1802
- /**
1803
- * @private
1804
- * This field is private and should not be used, use `tag` instead.
1805
- */
1806
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1807
- readonly tag: CredentialOrigin_Tags.Embedded;
1808
- };
1809
- "new"(): {
1810
- /**
1811
- * @private
1812
- * This field is private and should not be used, use `tag` instead.
1813
- */
1814
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1815
- readonly tag: CredentialOrigin_Tags.Embedded;
1816
- };
1817
- instanceOf(obj: any): obj is {
1818
- /**
1819
- * @private
1820
- * This field is private and should not be used, use `tag` instead.
1821
- */
1822
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1823
- readonly tag: CredentialOrigin_Tags.Embedded;
1824
- };
1825
- };
1826
- Recovered: {
1827
- new (inner: {
1828
- discoveries: Array<Discovery>;
1829
- fingerprintCheck: FingerprintCheck;
1830
- }): {
1831
- /**
1832
- * @private
1833
- * This field is private and should not be used, use `tag` instead.
1834
- */
1835
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1836
- readonly tag: CredentialOrigin_Tags.Recovered;
1837
- readonly inner: Readonly<{
1838
- discoveries: Array<Discovery>;
1839
- fingerprintCheck: FingerprintCheck;
1840
- }>;
1841
- };
1842
- "new"(inner: {
1843
- discoveries: Array<Discovery>;
1844
- fingerprintCheck: FingerprintCheck;
1845
- }): {
1846
- /**
1847
- * @private
1848
- * This field is private and should not be used, use `tag` instead.
1849
- */
1850
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1851
- readonly tag: CredentialOrigin_Tags.Recovered;
1852
- readonly inner: Readonly<{
1853
- discoveries: Array<Discovery>;
1854
- fingerprintCheck: FingerprintCheck;
1855
- }>;
1856
- };
1857
- instanceOf(obj: any): obj is {
1858
- /**
1859
- * @private
1860
- * This field is private and should not be used, use `tag` instead.
1861
- */
1862
- readonly [uniffiTypeNameSymbol]: "CredentialOrigin";
1863
- readonly tag: CredentialOrigin_Tags.Recovered;
1864
- readonly inner: Readonly<{
1865
- discoveries: Array<Discovery>;
1866
- fingerprintCheck: FingerprintCheck;
1867
- }>;
1868
- };
1869
- };
1870
- }>;
1871
- /**
1872
- * Where a credential came from: embedded in the asset, or recovered from a repository.
1873
- */
1874
- export type CredentialOrigin = InstanceType<typeof CredentialOrigin['Embedded' | 'Recovered']>;
1875
1420
  /**
1876
1421
  * A canonical gRPC/Connect status code: the coarse, closed failure class.
1877
1422
  */
@@ -2254,9 +1799,8 @@ export declare const SdkError: Readonly<{
2254
1799
  */
2255
1800
  export type SdkError = InstanceType<typeof SdkError['Reason' | 'Invalid' | 'Status']>;
2256
1801
  /**
2257
- * One `verify` result: the c2pa manifest store, where it came from, and whether its hard
2258
- * binding holds over the bytes read. A handle: it keeps the store, so a thumbnail is read from it
2259
- * with `resource` and never travels with the report.
1802
+ * A manifest store this verify found: a handle that keeps the store, so a thumbnail is read from
1803
+ * it with `resource` and never travels with the report.
2260
1804
  */
2261
1805
  export interface CredentialLike {
2262
1806
  /**
@@ -2273,9 +1817,14 @@ export interface CredentialLike {
2273
1817
  */
2274
1818
  manifest(): ManifestStore;
2275
1819
  /**
2276
- * Where this credential came from.
1820
+ * c2pa's own serialization of [`Self::manifest`], the object the wasm lane hands JS, for a
1821
+ * host that forwards the store rather than reads it.
1822
+ *
1823
+ * # Errors
1824
+ *
1825
+ * `READER_INVALID` when c2pa cannot serialize the store.
2277
1826
  */
2278
- origin(): CredentialOrigin;
1827
+ manifestJson(): JsonValue;
2279
1828
  /**
2280
1829
  * The bytes of one resource the store holds, or nothing: a thumbnail is read with the
2281
1830
  * `identifier` of the resource reference in `manifest`, and rendered with the `format` beside
@@ -2289,15 +1838,19 @@ export interface CredentialLike {
2289
1838
  resource(uri: string, asyncOpts_?: {
2290
1839
  signal: AbortSignal;
2291
1840
  }): Promise<ArrayBuffer | undefined>;
1841
+ /**
1842
+ * Whether it stands over these bytes: its hard binding holds and its validation is not
1843
+ * `Invalid`.
1844
+ */
1845
+ stands(): boolean;
2292
1846
  }
2293
1847
  /**
2294
1848
  * @deprecated Use `CredentialLike` instead.
2295
1849
  */
2296
1850
  export type CredentialInterface = CredentialLike;
2297
1851
  /**
2298
- * One `verify` result: the c2pa manifest store, where it came from, and whether its hard
2299
- * binding holds over the bytes read. A handle: it keeps the store, so a thumbnail is read from it
2300
- * with `resource` and never travels with the report.
1852
+ * A manifest store this verify found: a handle that keeps the store, so a thumbnail is read from
1853
+ * it with `resource` and never travels with the report.
2301
1854
  */
2302
1855
  export declare class Credential extends UniffiAbstractObject implements CredentialLike {
2303
1856
  readonly [uniffiTypeNameSymbol] = "Credential";
@@ -2318,9 +1871,14 @@ export declare class Credential extends UniffiAbstractObject implements Credenti
2318
1871
  */
2319
1872
  manifest(): ManifestStore;
2320
1873
  /**
2321
- * Where this credential came from.
1874
+ * c2pa's own serialization of [`Self::manifest`], the object the wasm lane hands JS, for a
1875
+ * host that forwards the store rather than reads it.
1876
+ *
1877
+ * # Errors
1878
+ *
1879
+ * `READER_INVALID` when c2pa cannot serialize the store.
2322
1880
  */
2323
- origin(): CredentialOrigin;
1881
+ manifestJson(): JsonValue;
2324
1882
  /**
2325
1883
  * The bytes of one resource the store holds, or nothing: a thumbnail is read with the
2326
1884
  * `identifier` of the resource reference in `manifest`, and rendered with the `format` beside
@@ -2334,20 +1892,13 @@ export declare class Credential extends UniffiAbstractObject implements Credenti
2334
1892
  resource(uri: string, asyncOpts_?: {
2335
1893
  signal: AbortSignal;
2336
1894
  }): Promise<ArrayBuffer | undefined>;
2337
- uniffiDestroy(): void;
2338
- static instanceOf(obj_: any): obj_ is Credential;
2339
- }
2340
- /**
2341
- * Whether the configured recovery sequence ran to a conclusive answer.
2342
- */
2343
- export declare enum RecoveryStatus {
2344
- NotRequested = 0,
2345
- NotFound = 1,
2346
- Recovered = 2,
2347
1895
  /**
2348
- * No credential was recovered and at least one required attempt failed or was skipped.
1896
+ * Whether it stands over these bytes: its hard binding holds and its validation is not
1897
+ * `Invalid`.
2349
1898
  */
2350
- Incomplete = 3
1899
+ stands(): boolean;
1900
+ uniffiDestroy(): void;
1901
+ static instanceOf(obj_: any): obj_ is Credential;
2351
1902
  }
2352
1903
  export declare enum RecoveryIssue_Tags {
2353
1904
  ComputeFailed = "ComputeFailed",
@@ -2370,7 +1921,198 @@ export declare const RecoveryIssue: Readonly<{
2370
1921
  instanceOf: (obj: any) => obj is RecoveryIssue;
2371
1922
  ComputeFailed: {
2372
1923
  new (inner: {
2373
- alg: string;
1924
+ alg: string;
1925
+ message: string;
1926
+ }): {
1927
+ /**
1928
+ * @private
1929
+ * This field is private and should not be used, use `tag` instead.
1930
+ */
1931
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
1932
+ readonly tag: RecoveryIssue_Tags.ComputeFailed;
1933
+ readonly inner: Readonly<{
1934
+ alg: string;
1935
+ message: string;
1936
+ }>;
1937
+ };
1938
+ "new"(inner: {
1939
+ alg: string;
1940
+ message: string;
1941
+ }): {
1942
+ /**
1943
+ * @private
1944
+ * This field is private and should not be used, use `tag` instead.
1945
+ */
1946
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
1947
+ readonly tag: RecoveryIssue_Tags.ComputeFailed;
1948
+ readonly inner: Readonly<{
1949
+ alg: string;
1950
+ message: string;
1951
+ }>;
1952
+ };
1953
+ instanceOf(obj: any): obj is {
1954
+ /**
1955
+ * @private
1956
+ * This field is private and should not be used, use `tag` instead.
1957
+ */
1958
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
1959
+ readonly tag: RecoveryIssue_Tags.ComputeFailed;
1960
+ readonly inner: Readonly<{
1961
+ alg: string;
1962
+ message: string;
1963
+ }>;
1964
+ };
1965
+ };
1966
+ BindingFailed: {
1967
+ new (inner: {
1968
+ repository: string;
1969
+ alg: string;
1970
+ message: string;
1971
+ }): {
1972
+ /**
1973
+ * @private
1974
+ * This field is private and should not be used, use `tag` instead.
1975
+ */
1976
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
1977
+ readonly tag: RecoveryIssue_Tags.BindingFailed;
1978
+ readonly inner: Readonly<{
1979
+ repository: string;
1980
+ alg: string;
1981
+ message: string;
1982
+ }>;
1983
+ };
1984
+ "new"(inner: {
1985
+ repository: string;
1986
+ alg: string;
1987
+ message: string;
1988
+ }): {
1989
+ /**
1990
+ * @private
1991
+ * This field is private and should not be used, use `tag` instead.
1992
+ */
1993
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
1994
+ readonly tag: RecoveryIssue_Tags.BindingFailed;
1995
+ readonly inner: Readonly<{
1996
+ repository: string;
1997
+ alg: string;
1998
+ message: string;
1999
+ }>;
2000
+ };
2001
+ instanceOf(obj: any): obj is {
2002
+ /**
2003
+ * @private
2004
+ * This field is private and should not be used, use `tag` instead.
2005
+ */
2006
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2007
+ readonly tag: RecoveryIssue_Tags.BindingFailed;
2008
+ readonly inner: Readonly<{
2009
+ repository: string;
2010
+ alg: string;
2011
+ message: string;
2012
+ }>;
2013
+ };
2014
+ };
2015
+ QueryRefused: {
2016
+ new (inner: {
2017
+ repository: string;
2018
+ alg: string;
2019
+ message: string;
2020
+ }): {
2021
+ /**
2022
+ * @private
2023
+ * This field is private and should not be used, use `tag` instead.
2024
+ */
2025
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2026
+ readonly tag: RecoveryIssue_Tags.QueryRefused;
2027
+ readonly inner: Readonly<{
2028
+ repository: string;
2029
+ alg: string;
2030
+ message: string;
2031
+ }>;
2032
+ };
2033
+ "new"(inner: {
2034
+ repository: string;
2035
+ alg: string;
2036
+ message: string;
2037
+ }): {
2038
+ /**
2039
+ * @private
2040
+ * This field is private and should not be used, use `tag` instead.
2041
+ */
2042
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2043
+ readonly tag: RecoveryIssue_Tags.QueryRefused;
2044
+ readonly inner: Readonly<{
2045
+ repository: string;
2046
+ alg: string;
2047
+ message: string;
2048
+ }>;
2049
+ };
2050
+ instanceOf(obj: any): obj is {
2051
+ /**
2052
+ * @private
2053
+ * This field is private and should not be used, use `tag` instead.
2054
+ */
2055
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2056
+ readonly tag: RecoveryIssue_Tags.QueryRefused;
2057
+ readonly inner: Readonly<{
2058
+ repository: string;
2059
+ alg: string;
2060
+ message: string;
2061
+ }>;
2062
+ };
2063
+ };
2064
+ ContentFailed: {
2065
+ new (inner: {
2066
+ repository: string;
2067
+ alg: string;
2068
+ message: string;
2069
+ }): {
2070
+ /**
2071
+ * @private
2072
+ * This field is private and should not be used, use `tag` instead.
2073
+ */
2074
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2075
+ readonly tag: RecoveryIssue_Tags.ContentFailed;
2076
+ readonly inner: Readonly<{
2077
+ repository: string;
2078
+ alg: string;
2079
+ message: string;
2080
+ }>;
2081
+ };
2082
+ "new"(inner: {
2083
+ repository: string;
2084
+ alg: string;
2085
+ message: string;
2086
+ }): {
2087
+ /**
2088
+ * @private
2089
+ * This field is private and should not be used, use `tag` instead.
2090
+ */
2091
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2092
+ readonly tag: RecoveryIssue_Tags.ContentFailed;
2093
+ readonly inner: Readonly<{
2094
+ repository: string;
2095
+ alg: string;
2096
+ message: string;
2097
+ }>;
2098
+ };
2099
+ instanceOf(obj: any): obj is {
2100
+ /**
2101
+ * @private
2102
+ * This field is private and should not be used, use `tag` instead.
2103
+ */
2104
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2105
+ readonly tag: RecoveryIssue_Tags.ContentFailed;
2106
+ readonly inner: Readonly<{
2107
+ repository: string;
2108
+ alg: string;
2109
+ message: string;
2110
+ }>;
2111
+ };
2112
+ };
2113
+ CapabilitiesUnavailable: {
2114
+ new (inner: {
2115
+ repository: string;
2374
2116
  message: string;
2375
2117
  }): {
2376
2118
  /**
@@ -2378,14 +2120,14 @@ export declare const RecoveryIssue: Readonly<{
2378
2120
  * This field is private and should not be used, use `tag` instead.
2379
2121
  */
2380
2122
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2381
- readonly tag: RecoveryIssue_Tags.ComputeFailed;
2123
+ readonly tag: RecoveryIssue_Tags.CapabilitiesUnavailable;
2382
2124
  readonly inner: Readonly<{
2383
- alg: string;
2125
+ repository: string;
2384
2126
  message: string;
2385
2127
  }>;
2386
2128
  };
2387
2129
  "new"(inner: {
2388
- alg: string;
2130
+ repository: string;
2389
2131
  message: string;
2390
2132
  }): {
2391
2133
  /**
@@ -2393,9 +2135,9 @@ export declare const RecoveryIssue: Readonly<{
2393
2135
  * This field is private and should not be used, use `tag` instead.
2394
2136
  */
2395
2137
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2396
- readonly tag: RecoveryIssue_Tags.ComputeFailed;
2138
+ readonly tag: RecoveryIssue_Tags.CapabilitiesUnavailable;
2397
2139
  readonly inner: Readonly<{
2398
- alg: string;
2140
+ repository: string;
2399
2141
  message: string;
2400
2142
  }>;
2401
2143
  };
@@ -2405,17 +2147,56 @@ export declare const RecoveryIssue: Readonly<{
2405
2147
  * This field is private and should not be used, use `tag` instead.
2406
2148
  */
2407
2149
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2408
- readonly tag: RecoveryIssue_Tags.ComputeFailed;
2150
+ readonly tag: RecoveryIssue_Tags.CapabilitiesUnavailable;
2409
2151
  readonly inner: Readonly<{
2410
- alg: string;
2152
+ repository: string;
2411
2153
  message: string;
2412
2154
  }>;
2413
2155
  };
2414
2156
  };
2415
- BindingFailed: {
2157
+ TooLarge: {
2158
+ new (inner: {
2159
+ maxUploadBytes: bigint;
2160
+ }): {
2161
+ /**
2162
+ * @private
2163
+ * This field is private and should not be used, use `tag` instead.
2164
+ */
2165
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2166
+ readonly tag: RecoveryIssue_Tags.TooLarge;
2167
+ readonly inner: Readonly<{
2168
+ maxUploadBytes: bigint;
2169
+ }>;
2170
+ };
2171
+ "new"(inner: {
2172
+ maxUploadBytes: bigint;
2173
+ }): {
2174
+ /**
2175
+ * @private
2176
+ * This field is private and should not be used, use `tag` instead.
2177
+ */
2178
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2179
+ readonly tag: RecoveryIssue_Tags.TooLarge;
2180
+ readonly inner: Readonly<{
2181
+ maxUploadBytes: bigint;
2182
+ }>;
2183
+ };
2184
+ instanceOf(obj: any): obj is {
2185
+ /**
2186
+ * @private
2187
+ * This field is private and should not be used, use `tag` instead.
2188
+ */
2189
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2190
+ readonly tag: RecoveryIssue_Tags.TooLarge;
2191
+ readonly inner: Readonly<{
2192
+ maxUploadBytes: bigint;
2193
+ }>;
2194
+ };
2195
+ };
2196
+ FetchFailed: {
2416
2197
  new (inner: {
2417
2198
  repository: string;
2418
- alg: string;
2199
+ manifestId: string;
2419
2200
  message: string;
2420
2201
  }): {
2421
2202
  /**
@@ -2423,16 +2204,16 @@ export declare const RecoveryIssue: Readonly<{
2423
2204
  * This field is private and should not be used, use `tag` instead.
2424
2205
  */
2425
2206
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2426
- readonly tag: RecoveryIssue_Tags.BindingFailed;
2207
+ readonly tag: RecoveryIssue_Tags.FetchFailed;
2427
2208
  readonly inner: Readonly<{
2428
2209
  repository: string;
2429
- alg: string;
2210
+ manifestId: string;
2430
2211
  message: string;
2431
2212
  }>;
2432
2213
  };
2433
2214
  "new"(inner: {
2434
2215
  repository: string;
2435
- alg: string;
2216
+ manifestId: string;
2436
2217
  message: string;
2437
2218
  }): {
2438
2219
  /**
@@ -2440,10 +2221,10 @@ export declare const RecoveryIssue: Readonly<{
2440
2221
  * This field is private and should not be used, use `tag` instead.
2441
2222
  */
2442
2223
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2443
- readonly tag: RecoveryIssue_Tags.BindingFailed;
2224
+ readonly tag: RecoveryIssue_Tags.FetchFailed;
2444
2225
  readonly inner: Readonly<{
2445
2226
  repository: string;
2446
- alg: string;
2227
+ manifestId: string;
2447
2228
  message: string;
2448
2229
  }>;
2449
2230
  };
@@ -2453,96 +2234,242 @@ export declare const RecoveryIssue: Readonly<{
2453
2234
  * This field is private and should not be used, use `tag` instead.
2454
2235
  */
2455
2236
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2456
- readonly tag: RecoveryIssue_Tags.BindingFailed;
2237
+ readonly tag: RecoveryIssue_Tags.FetchFailed;
2457
2238
  readonly inner: Readonly<{
2458
2239
  repository: string;
2459
- alg: string;
2240
+ manifestId: string;
2460
2241
  message: string;
2461
2242
  }>;
2462
2243
  };
2463
2244
  };
2464
- QueryRefused: {
2245
+ CandidateInvalid: {
2246
+ new (inner: {
2247
+ manifestId: string;
2248
+ reason: string;
2249
+ }): {
2250
+ /**
2251
+ * @private
2252
+ * This field is private and should not be used, use `tag` instead.
2253
+ */
2254
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2255
+ readonly tag: RecoveryIssue_Tags.CandidateInvalid;
2256
+ readonly inner: Readonly<{
2257
+ manifestId: string;
2258
+ reason: string;
2259
+ }>;
2260
+ };
2261
+ "new"(inner: {
2262
+ manifestId: string;
2263
+ reason: string;
2264
+ }): {
2265
+ /**
2266
+ * @private
2267
+ * This field is private and should not be used, use `tag` instead.
2268
+ */
2269
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2270
+ readonly tag: RecoveryIssue_Tags.CandidateInvalid;
2271
+ readonly inner: Readonly<{
2272
+ manifestId: string;
2273
+ reason: string;
2274
+ }>;
2275
+ };
2276
+ instanceOf(obj: any): obj is {
2277
+ /**
2278
+ * @private
2279
+ * This field is private and should not be used, use `tag` instead.
2280
+ */
2281
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2282
+ readonly tag: RecoveryIssue_Tags.CandidateInvalid;
2283
+ readonly inner: Readonly<{
2284
+ manifestId: string;
2285
+ reason: string;
2286
+ }>;
2287
+ };
2288
+ };
2289
+ EndpointRefused: {
2465
2290
  new (inner: {
2466
2291
  repository: string;
2467
- alg: string;
2468
- message: string;
2292
+ manifestId: string;
2293
+ endpoint: string;
2469
2294
  }): {
2470
2295
  /**
2471
2296
  * @private
2472
2297
  * This field is private and should not be used, use `tag` instead.
2473
2298
  */
2474
2299
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2475
- readonly tag: RecoveryIssue_Tags.QueryRefused;
2300
+ readonly tag: RecoveryIssue_Tags.EndpointRefused;
2476
2301
  readonly inner: Readonly<{
2477
2302
  repository: string;
2478
- alg: string;
2479
- message: string;
2303
+ manifestId: string;
2304
+ endpoint: string;
2480
2305
  }>;
2481
2306
  };
2482
2307
  "new"(inner: {
2483
2308
  repository: string;
2484
- alg: string;
2485
- message: string;
2309
+ manifestId: string;
2310
+ endpoint: string;
2486
2311
  }): {
2487
2312
  /**
2488
2313
  * @private
2489
2314
  * This field is private and should not be used, use `tag` instead.
2490
2315
  */
2491
2316
  readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2492
- readonly tag: RecoveryIssue_Tags.QueryRefused;
2317
+ readonly tag: RecoveryIssue_Tags.EndpointRefused;
2493
2318
  readonly inner: Readonly<{
2494
2319
  repository: string;
2495
- alg: string;
2320
+ manifestId: string;
2321
+ endpoint: string;
2322
+ }>;
2323
+ };
2324
+ instanceOf(obj: any): obj is {
2325
+ /**
2326
+ * @private
2327
+ * This field is private and should not be used, use `tag` instead.
2328
+ */
2329
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2330
+ readonly tag: RecoveryIssue_Tags.EndpointRefused;
2331
+ readonly inner: Readonly<{
2332
+ repository: string;
2333
+ manifestId: string;
2334
+ endpoint: string;
2335
+ }>;
2336
+ };
2337
+ };
2338
+ LimitReached: {
2339
+ new (inner: {
2340
+ message: string;
2341
+ }): {
2342
+ /**
2343
+ * @private
2344
+ * This field is private and should not be used, use `tag` instead.
2345
+ */
2346
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2347
+ readonly tag: RecoveryIssue_Tags.LimitReached;
2348
+ readonly inner: Readonly<{
2349
+ message: string;
2350
+ }>;
2351
+ };
2352
+ "new"(inner: {
2353
+ message: string;
2354
+ }): {
2355
+ /**
2356
+ * @private
2357
+ * This field is private and should not be used, use `tag` instead.
2358
+ */
2359
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2360
+ readonly tag: RecoveryIssue_Tags.LimitReached;
2361
+ readonly inner: Readonly<{
2362
+ message: string;
2363
+ }>;
2364
+ };
2365
+ instanceOf(obj: any): obj is {
2366
+ /**
2367
+ * @private
2368
+ * This field is private and should not be used, use `tag` instead.
2369
+ */
2370
+ readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2371
+ readonly tag: RecoveryIssue_Tags.LimitReached;
2372
+ readonly inner: Readonly<{
2496
2373
  message: string;
2497
2374
  }>;
2498
2375
  };
2376
+ };
2377
+ }>;
2378
+ /**
2379
+ * Why repository recovery did not complete cleanly, or why one candidate was omitted while another
2380
+ * succeeded. Kept as data so a partial recovery never loses the rest of the lookup outcome, and
2381
+ * each kind carries exactly what it is about.
2382
+ */
2383
+ export type RecoveryIssue = InstanceType<typeof RecoveryIssue['ComputeFailed' | 'BindingFailed' | 'QueryRefused' | 'ContentFailed' | 'CapabilitiesUnavailable' | 'TooLarge' | 'FetchFailed' | 'CandidateInvalid' | 'EndpointRefused' | 'LimitReached']>;
2384
+ /**
2385
+ * The value a content query was hinted with, under its own algorithm.
2386
+ */
2387
+ export type Hint = {
2388
+ alg: string;
2389
+ value: ArrayBuffer;
2390
+ };
2391
+ /**
2392
+ * Generated factory for {@link Hint} record objects.
2393
+ */
2394
+ export declare const Hint: Readonly<{
2395
+ create: (partial: Partial<Hint> & Required<Omit<Hint, never>>) => Hint;
2396
+ new: (partial: Partial<Hint> & Required<Omit<Hint, never>>) => Hint;
2397
+ defaults: () => Partial<Hint>;
2398
+ }>;
2399
+ export declare enum DiscoveryVia_Tags {
2400
+ ByBinding = "ByBinding",
2401
+ ByContent = "ByContent",
2402
+ ByReference = "ByReference"
2403
+ }
2404
+ /**
2405
+ * The Soft Binding Resolution API route a discovery came through.
2406
+ */
2407
+ export declare const DiscoveryVia: Readonly<{
2408
+ instanceOf: (obj: any) => obj is DiscoveryVia;
2409
+ ByBinding: {
2410
+ new (inner: {
2411
+ value: ArrayBuffer;
2412
+ }): {
2413
+ /**
2414
+ * @private
2415
+ * This field is private and should not be used, use `tag` instead.
2416
+ */
2417
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2418
+ readonly tag: DiscoveryVia_Tags.ByBinding;
2419
+ readonly inner: Readonly<{
2420
+ value: ArrayBuffer;
2421
+ }>;
2422
+ };
2423
+ "new"(inner: {
2424
+ value: ArrayBuffer;
2425
+ }): {
2426
+ /**
2427
+ * @private
2428
+ * This field is private and should not be used, use `tag` instead.
2429
+ */
2430
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2431
+ readonly tag: DiscoveryVia_Tags.ByBinding;
2432
+ readonly inner: Readonly<{
2433
+ value: ArrayBuffer;
2434
+ }>;
2435
+ };
2499
2436
  instanceOf(obj: any): obj is {
2500
2437
  /**
2501
2438
  * @private
2502
2439
  * This field is private and should not be used, use `tag` instead.
2503
2440
  */
2504
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2505
- readonly tag: RecoveryIssue_Tags.QueryRefused;
2441
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2442
+ readonly tag: DiscoveryVia_Tags.ByBinding;
2506
2443
  readonly inner: Readonly<{
2507
- repository: string;
2508
- alg: string;
2509
- message: string;
2444
+ value: ArrayBuffer;
2510
2445
  }>;
2511
2446
  };
2512
2447
  };
2513
- ContentFailed: {
2448
+ ByContent: {
2514
2449
  new (inner: {
2515
- repository: string;
2516
- alg: string;
2517
- message: string;
2450
+ hint?: Hint;
2518
2451
  }): {
2519
2452
  /**
2520
2453
  * @private
2521
2454
  * This field is private and should not be used, use `tag` instead.
2522
2455
  */
2523
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2524
- readonly tag: RecoveryIssue_Tags.ContentFailed;
2456
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2457
+ readonly tag: DiscoveryVia_Tags.ByContent;
2525
2458
  readonly inner: Readonly<{
2526
- repository: string;
2527
- alg: string;
2528
- message: string;
2459
+ hint?: Hint;
2529
2460
  }>;
2530
2461
  };
2531
2462
  "new"(inner: {
2532
- repository: string;
2533
- alg: string;
2534
- message: string;
2463
+ hint?: Hint;
2535
2464
  }): {
2536
2465
  /**
2537
2466
  * @private
2538
2467
  * This field is private and should not be used, use `tag` instead.
2539
2468
  */
2540
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2541
- readonly tag: RecoveryIssue_Tags.ContentFailed;
2469
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2470
+ readonly tag: DiscoveryVia_Tags.ByContent;
2542
2471
  readonly inner: Readonly<{
2543
- repository: string;
2544
- alg: string;
2545
- message: string;
2472
+ hint?: Hint;
2546
2473
  }>;
2547
2474
  };
2548
2475
  instanceOf(obj: any): obj is {
@@ -2550,44 +2477,38 @@ export declare const RecoveryIssue: Readonly<{
2550
2477
  * @private
2551
2478
  * This field is private and should not be used, use `tag` instead.
2552
2479
  */
2553
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2554
- readonly tag: RecoveryIssue_Tags.ContentFailed;
2480
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2481
+ readonly tag: DiscoveryVia_Tags.ByContent;
2555
2482
  readonly inner: Readonly<{
2556
- repository: string;
2557
- alg: string;
2558
- message: string;
2483
+ hint?: Hint;
2559
2484
  }>;
2560
2485
  };
2561
2486
  };
2562
- CapabilitiesUnavailable: {
2487
+ ByReference: {
2563
2488
  new (inner: {
2564
- repository: string;
2565
- message: string;
2489
+ hint?: Hint;
2566
2490
  }): {
2567
2491
  /**
2568
2492
  * @private
2569
2493
  * This field is private and should not be used, use `tag` instead.
2570
2494
  */
2571
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2572
- readonly tag: RecoveryIssue_Tags.CapabilitiesUnavailable;
2495
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2496
+ readonly tag: DiscoveryVia_Tags.ByReference;
2573
2497
  readonly inner: Readonly<{
2574
- repository: string;
2575
- message: string;
2498
+ hint?: Hint;
2576
2499
  }>;
2577
2500
  };
2578
2501
  "new"(inner: {
2579
- repository: string;
2580
- message: string;
2502
+ hint?: Hint;
2581
2503
  }): {
2582
2504
  /**
2583
2505
  * @private
2584
2506
  * This field is private and should not be used, use `tag` instead.
2585
2507
  */
2586
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2587
- readonly tag: RecoveryIssue_Tags.CapabilitiesUnavailable;
2508
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2509
+ readonly tag: DiscoveryVia_Tags.ByReference;
2588
2510
  readonly inner: Readonly<{
2589
- repository: string;
2590
- message: string;
2511
+ hint?: Hint;
2591
2512
  }>;
2592
2513
  };
2593
2514
  instanceOf(obj: any): obj is {
@@ -2595,131 +2516,150 @@ export declare const RecoveryIssue: Readonly<{
2595
2516
  * @private
2596
2517
  * This field is private and should not be used, use `tag` instead.
2597
2518
  */
2598
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2599
- readonly tag: RecoveryIssue_Tags.CapabilitiesUnavailable;
2519
+ readonly [uniffiTypeNameSymbol]: "DiscoveryVia";
2520
+ readonly tag: DiscoveryVia_Tags.ByReference;
2600
2521
  readonly inner: Readonly<{
2601
- repository: string;
2602
- message: string;
2522
+ hint?: Hint;
2603
2523
  }>;
2604
2524
  };
2605
2525
  };
2606
- TooLarge: {
2607
- new (inner: {
2608
- maxUploadBytes: bigint;
2609
- }): {
2526
+ }>;
2527
+ /**
2528
+ * The Soft Binding Resolution API route a discovery came through.
2529
+ */
2530
+ export type DiscoveryVia = InstanceType<typeof DiscoveryVia['ByBinding' | 'ByContent' | 'ByReference']>;
2531
+ /**
2532
+ * The C2PA list's `type` of a soft binding algorithm.
2533
+ */
2534
+ export declare enum SoftBindingType {
2535
+ Fingerprint = 0,
2536
+ Watermark = 1
2537
+ }
2538
+ /**
2539
+ * Typealias from the type name used in the UDL file to the builtin type. This
2540
+ * is needed because the UDL type name is used in function/method signatures.
2541
+ */
2542
+ export type SimilarityScore = number;
2543
+ /**
2544
+ * One query that located a recovered credential: how it was asked, under which algorithm, and
2545
+ * where the manifest came from.
2546
+ */
2547
+ export type Discovery = {
2548
+ via: DiscoveryVia;
2549
+ alg: string;
2550
+ type: SoftBindingType;
2551
+ /**
2552
+ * The repository's `similarityScore`, 0-100.
2553
+ */
2554
+ score?: SimilarityScore;
2555
+ repository: string;
2556
+ endpoint?: string;
2557
+ };
2558
+ /**
2559
+ * Generated factory for {@link Discovery} record objects.
2560
+ */
2561
+ export declare const Discovery: Readonly<{
2562
+ create: (partial: Partial<Discovery> & Required<Omit<Discovery, "endpoint" | "score">>) => Discovery;
2563
+ new: (partial: Partial<Discovery> & Required<Omit<Discovery, "endpoint" | "score">>) => Discovery;
2564
+ defaults: () => Partial<Discovery>;
2565
+ }>;
2566
+ export declare enum FingerprintCheck_Tags {
2567
+ NotNeeded = "NotNeeded",
2568
+ Missing = "Missing",
2569
+ Unsupported = "Unsupported",
2570
+ Indeterminate = "Indeterminate",
2571
+ Compared = "Compared"
2572
+ }
2573
+ /**
2574
+ * Whether the asset's own fingerprint backs up a manifest that a watermark led to.
2575
+ *
2576
+ * C2PA 2.4 Soft Binding API section 1.2.2.3: a watermark can be lifted from one asset onto another, so a mark alone does
2577
+ * not establish that the manifest it resolves to describes THIS asset. The mitigation the spec
2578
+ * gives is to compare a fingerprint computed from the asset against the one the recovered
2579
+ * manifest records, and `watermark-and-fingerprint` ends on exactly that comparison.
2580
+ *
2581
+ * Reported rather than enforced: a transcode legitimately shifts a fingerprint, so where the line
2582
+ * falls is the relying party's policy, not this SDK's. What the SDK owes them is the measurement.
2583
+ */
2584
+ export declare const FingerprintCheck: Readonly<{
2585
+ instanceOf: (obj: any) => obj is FingerprintCheck;
2586
+ NotNeeded: {
2587
+ new (): {
2610
2588
  /**
2611
2589
  * @private
2612
2590
  * This field is private and should not be used, use `tag` instead.
2613
2591
  */
2614
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2615
- readonly tag: RecoveryIssue_Tags.TooLarge;
2616
- readonly inner: Readonly<{
2617
- maxUploadBytes: bigint;
2618
- }>;
2592
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2593
+ readonly tag: FingerprintCheck_Tags.NotNeeded;
2619
2594
  };
2620
- "new"(inner: {
2621
- maxUploadBytes: bigint;
2622
- }): {
2595
+ "new"(): {
2623
2596
  /**
2624
2597
  * @private
2625
2598
  * This field is private and should not be used, use `tag` instead.
2626
2599
  */
2627
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2628
- readonly tag: RecoveryIssue_Tags.TooLarge;
2629
- readonly inner: Readonly<{
2630
- maxUploadBytes: bigint;
2631
- }>;
2600
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2601
+ readonly tag: FingerprintCheck_Tags.NotNeeded;
2632
2602
  };
2633
2603
  instanceOf(obj: any): obj is {
2634
2604
  /**
2635
2605
  * @private
2636
2606
  * This field is private and should not be used, use `tag` instead.
2637
2607
  */
2638
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2639
- readonly tag: RecoveryIssue_Tags.TooLarge;
2640
- readonly inner: Readonly<{
2641
- maxUploadBytes: bigint;
2642
- }>;
2608
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2609
+ readonly tag: FingerprintCheck_Tags.NotNeeded;
2643
2610
  };
2644
2611
  };
2645
- FetchFailed: {
2646
- new (inner: {
2647
- repository: string;
2648
- manifestId: string;
2649
- message: string;
2650
- }): {
2612
+ Missing: {
2613
+ new (): {
2651
2614
  /**
2652
2615
  * @private
2653
2616
  * This field is private and should not be used, use `tag` instead.
2654
2617
  */
2655
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2656
- readonly tag: RecoveryIssue_Tags.FetchFailed;
2657
- readonly inner: Readonly<{
2658
- repository: string;
2659
- manifestId: string;
2660
- message: string;
2661
- }>;
2618
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2619
+ readonly tag: FingerprintCheck_Tags.Missing;
2662
2620
  };
2663
- "new"(inner: {
2664
- repository: string;
2665
- manifestId: string;
2666
- message: string;
2667
- }): {
2621
+ "new"(): {
2668
2622
  /**
2669
2623
  * @private
2670
2624
  * This field is private and should not be used, use `tag` instead.
2671
2625
  */
2672
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2673
- readonly tag: RecoveryIssue_Tags.FetchFailed;
2674
- readonly inner: Readonly<{
2675
- repository: string;
2676
- manifestId: string;
2677
- message: string;
2678
- }>;
2626
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2627
+ readonly tag: FingerprintCheck_Tags.Missing;
2679
2628
  };
2680
2629
  instanceOf(obj: any): obj is {
2681
2630
  /**
2682
2631
  * @private
2683
2632
  * This field is private and should not be used, use `tag` instead.
2684
2633
  */
2685
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2686
- readonly tag: RecoveryIssue_Tags.FetchFailed;
2687
- readonly inner: Readonly<{
2688
- repository: string;
2689
- manifestId: string;
2690
- message: string;
2691
- }>;
2634
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2635
+ readonly tag: FingerprintCheck_Tags.Missing;
2692
2636
  };
2693
2637
  };
2694
- CandidateInvalid: {
2638
+ Unsupported: {
2695
2639
  new (inner: {
2696
- manifestId: string;
2697
- reason: string;
2640
+ alg: string;
2698
2641
  }): {
2699
2642
  /**
2700
2643
  * @private
2701
2644
  * This field is private and should not be used, use `tag` instead.
2702
2645
  */
2703
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2704
- readonly tag: RecoveryIssue_Tags.CandidateInvalid;
2646
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2647
+ readonly tag: FingerprintCheck_Tags.Unsupported;
2705
2648
  readonly inner: Readonly<{
2706
- manifestId: string;
2707
- reason: string;
2649
+ alg: string;
2708
2650
  }>;
2709
2651
  };
2710
2652
  "new"(inner: {
2711
- manifestId: string;
2712
- reason: string;
2653
+ alg: string;
2713
2654
  }): {
2714
2655
  /**
2715
2656
  * @private
2716
2657
  * This field is private and should not be used, use `tag` instead.
2717
2658
  */
2718
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2719
- readonly tag: RecoveryIssue_Tags.CandidateInvalid;
2659
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2660
+ readonly tag: FingerprintCheck_Tags.Unsupported;
2720
2661
  readonly inner: Readonly<{
2721
- manifestId: string;
2722
- reason: string;
2662
+ alg: string;
2723
2663
  }>;
2724
2664
  };
2725
2665
  instanceOf(obj: any): obj is {
@@ -2727,88 +2667,64 @@ export declare const RecoveryIssue: Readonly<{
2727
2667
  * @private
2728
2668
  * This field is private and should not be used, use `tag` instead.
2729
2669
  */
2730
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2731
- readonly tag: RecoveryIssue_Tags.CandidateInvalid;
2670
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2671
+ readonly tag: FingerprintCheck_Tags.Unsupported;
2732
2672
  readonly inner: Readonly<{
2733
- manifestId: string;
2734
- reason: string;
2673
+ alg: string;
2735
2674
  }>;
2736
2675
  };
2737
2676
  };
2738
- EndpointRefused: {
2739
- new (inner: {
2740
- repository: string;
2741
- manifestId: string;
2742
- endpoint: string;
2743
- }): {
2677
+ Indeterminate: {
2678
+ new (): {
2744
2679
  /**
2745
2680
  * @private
2746
2681
  * This field is private and should not be used, use `tag` instead.
2747
2682
  */
2748
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2749
- readonly tag: RecoveryIssue_Tags.EndpointRefused;
2750
- readonly inner: Readonly<{
2751
- repository: string;
2752
- manifestId: string;
2753
- endpoint: string;
2754
- }>;
2755
- };
2756
- "new"(inner: {
2757
- repository: string;
2758
- manifestId: string;
2759
- endpoint: string;
2760
- }): {
2683
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2684
+ readonly tag: FingerprintCheck_Tags.Indeterminate;
2685
+ };
2686
+ "new"(): {
2761
2687
  /**
2762
2688
  * @private
2763
2689
  * This field is private and should not be used, use `tag` instead.
2764
2690
  */
2765
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2766
- readonly tag: RecoveryIssue_Tags.EndpointRefused;
2767
- readonly inner: Readonly<{
2768
- repository: string;
2769
- manifestId: string;
2770
- endpoint: string;
2771
- }>;
2691
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2692
+ readonly tag: FingerprintCheck_Tags.Indeterminate;
2772
2693
  };
2773
2694
  instanceOf(obj: any): obj is {
2774
2695
  /**
2775
2696
  * @private
2776
2697
  * This field is private and should not be used, use `tag` instead.
2777
2698
  */
2778
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2779
- readonly tag: RecoveryIssue_Tags.EndpointRefused;
2780
- readonly inner: Readonly<{
2781
- repository: string;
2782
- manifestId: string;
2783
- endpoint: string;
2784
- }>;
2699
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2700
+ readonly tag: FingerprintCheck_Tags.Indeterminate;
2785
2701
  };
2786
2702
  };
2787
- LimitReached: {
2703
+ Compared: {
2788
2704
  new (inner: {
2789
- message: string;
2705
+ score: SimilarityScore;
2790
2706
  }): {
2791
2707
  /**
2792
2708
  * @private
2793
2709
  * This field is private and should not be used, use `tag` instead.
2794
2710
  */
2795
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2796
- readonly tag: RecoveryIssue_Tags.LimitReached;
2711
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2712
+ readonly tag: FingerprintCheck_Tags.Compared;
2797
2713
  readonly inner: Readonly<{
2798
- message: string;
2714
+ score: SimilarityScore;
2799
2715
  }>;
2800
2716
  };
2801
2717
  "new"(inner: {
2802
- message: string;
2718
+ score: SimilarityScore;
2803
2719
  }): {
2804
2720
  /**
2805
2721
  * @private
2806
2722
  * This field is private and should not be used, use `tag` instead.
2807
2723
  */
2808
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2809
- readonly tag: RecoveryIssue_Tags.LimitReached;
2724
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2725
+ readonly tag: FingerprintCheck_Tags.Compared;
2810
2726
  readonly inner: Readonly<{
2811
- message: string;
2727
+ score: SimilarityScore;
2812
2728
  }>;
2813
2729
  };
2814
2730
  instanceOf(obj: any): obj is {
@@ -2816,111 +2732,185 @@ export declare const RecoveryIssue: Readonly<{
2816
2732
  * @private
2817
2733
  * This field is private and should not be used, use `tag` instead.
2818
2734
  */
2819
- readonly [uniffiTypeNameSymbol]: "RecoveryIssue";
2820
- readonly tag: RecoveryIssue_Tags.LimitReached;
2735
+ readonly [uniffiTypeNameSymbol]: "FingerprintCheck";
2736
+ readonly tag: FingerprintCheck_Tags.Compared;
2821
2737
  readonly inner: Readonly<{
2822
- message: string;
2738
+ score: SimilarityScore;
2823
2739
  }>;
2824
2740
  };
2825
2741
  };
2826
2742
  }>;
2827
2743
  /**
2828
- * Why repository recovery did not complete cleanly, or why one candidate was omitted while another
2829
- * succeeded. Kept as data so a partial recovery never loses the rest of the lookup outcome, and
2830
- * each kind carries exactly what it is about.
2744
+ * Whether the asset's own fingerprint backs up a manifest that a watermark led to.
2745
+ *
2746
+ * C2PA 2.4 Soft Binding API section 1.2.2.3: a watermark can be lifted from one asset onto another, so a mark alone does
2747
+ * not establish that the manifest it resolves to describes THIS asset. The mitigation the spec
2748
+ * gives is to compare a fingerprint computed from the asset against the one the recovered
2749
+ * manifest records, and `watermark-and-fingerprint` ends on exactly that comparison.
2750
+ *
2751
+ * Reported rather than enforced: a transcode legitimately shifts a fingerprint, so where the line
2752
+ * falls is the relying party's policy, not this SDK's. What the SDK owes them is the measurement.
2831
2753
  */
2832
- export type RecoveryIssue = InstanceType<typeof RecoveryIssue['ComputeFailed' | 'BindingFailed' | 'QueryRefused' | 'ContentFailed' | 'CapabilitiesUnavailable' | 'TooLarge' | 'FetchFailed' | 'CandidateInvalid' | 'EndpointRefused' | 'LimitReached']>;
2754
+ export type FingerprintCheck = InstanceType<typeof FingerprintCheck['NotNeeded' | 'Missing' | 'Unsupported' | 'Indeterminate' | 'Compared']>;
2755
+ /**
2756
+ * C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison of one recovered
2757
+ * credential against the manifest the asset carries.
2758
+ */
2759
+ export declare enum ManifestComparison {
2760
+ /**
2761
+ * The recovered credential is the embedded one, claim for claim.
2762
+ */
2763
+ Same = 0,
2764
+ /**
2765
+ * It is another manifest: what a substitution looks like.
2766
+ */
2767
+ Different = 1,
2768
+ /**
2769
+ * One side has no active manifest to compare.
2770
+ */
2771
+ Unreadable = 2
2772
+ }
2833
2773
  /**
2834
- * Repository recovery outcome and every non-fatal issue encountered on the way.
2774
+ * A credential recovery found: the store, where it was fetched, every query that led to it, and
2775
+ * whether the asset's own fingerprint backs up a mark among them (C2PA 2.4 Soft Binding API
2776
+ * section 1.2.2.3).
2835
2777
  */
2836
- export type RecoverySummary = {
2837
- status: RecoveryStatus;
2838
- issues: Array<RecoveryIssue>;
2778
+ export type RecoveredCredential = {
2779
+ credential: CredentialLike;
2780
+ /**
2781
+ * `GET /manifests/{manifestId}` at the resolution API that served it.
2782
+ */
2783
+ url: string;
2784
+ discoveries: Array<Discovery>;
2785
+ fingerprintCheck: FingerprintCheck;
2786
+ /**
2787
+ * This credential against the embedded one, present exactly when they were compared.
2788
+ */
2789
+ comparison?: ManifestComparison;
2839
2790
  };
2840
2791
  /**
2841
- * Generated factory for {@link RecoverySummary} record objects.
2792
+ * Generated factory for {@link RecoveredCredential} record objects.
2842
2793
  */
2843
- export declare const RecoverySummary: Readonly<{
2844
- create: (partial: Partial<RecoverySummary> & Required<Omit<RecoverySummary, never>>) => RecoverySummary;
2845
- new: (partial: Partial<RecoverySummary> & Required<Omit<RecoverySummary, never>>) => RecoverySummary;
2846
- defaults: () => Partial<RecoverySummary>;
2794
+ export declare const RecoveredCredential: Readonly<{
2795
+ create: (partial: Partial<RecoveredCredential> & Required<Omit<RecoveredCredential, "comparison">>) => RecoveredCredential;
2796
+ new: (partial: Partial<RecoveredCredential> & Required<Omit<RecoveredCredential, "comparison">>) => RecoveredCredential;
2797
+ defaults: () => Partial<RecoveredCredential>;
2847
2798
  }>;
2848
- export declare enum Golden_Tags {
2849
- Matches = "Matches",
2850
- Differs = "Differs",
2851
- NoneMatches = "NoneMatches",
2852
- Unreadable = "Unreadable"
2799
+ export declare enum Recovered_Tags {
2800
+ NotRequested = "NotRequested",
2801
+ Skipped = "Skipped",
2802
+ NotFound = "NotFound",
2803
+ Incomplete = "Incomplete",
2804
+ Found = "Found"
2853
2805
  }
2854
2806
  /**
2855
- * C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison: the embedded active
2856
- * manifest against what the repository holds.
2807
+ * What recovery did.
2857
2808
  */
2858
- export declare const Golden: Readonly<{
2859
- instanceOf: (obj: any) => obj is Golden;
2860
- Matches: {
2861
- new (inner: {
2862
- index: number;
2863
- }): {
2809
+ export declare const Recovered: Readonly<{
2810
+ instanceOf: (obj: any) => obj is Recovered;
2811
+ NotRequested: {
2812
+ new (): {
2864
2813
  /**
2865
2814
  * @private
2866
2815
  * This field is private and should not be used, use `tag` instead.
2867
2816
  */
2868
- readonly [uniffiTypeNameSymbol]: "Golden";
2869
- readonly tag: Golden_Tags.Matches;
2870
- readonly inner: Readonly<{
2871
- index: number;
2872
- }>;
2817
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2818
+ readonly tag: Recovered_Tags.NotRequested;
2873
2819
  };
2874
- "new"(inner: {
2875
- index: number;
2876
- }): {
2820
+ "new"(): {
2877
2821
  /**
2878
2822
  * @private
2879
2823
  * This field is private and should not be used, use `tag` instead.
2880
2824
  */
2881
- readonly [uniffiTypeNameSymbol]: "Golden";
2882
- readonly tag: Golden_Tags.Matches;
2883
- readonly inner: Readonly<{
2884
- index: number;
2885
- }>;
2825
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2826
+ readonly tag: Recovered_Tags.NotRequested;
2886
2827
  };
2887
2828
  instanceOf(obj: any): obj is {
2888
2829
  /**
2889
2830
  * @private
2890
2831
  * This field is private and should not be used, use `tag` instead.
2891
2832
  */
2892
- readonly [uniffiTypeNameSymbol]: "Golden";
2893
- readonly tag: Golden_Tags.Matches;
2894
- readonly inner: Readonly<{
2895
- index: number;
2896
- }>;
2833
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2834
+ readonly tag: Recovered_Tags.NotRequested;
2835
+ };
2836
+ };
2837
+ Skipped: {
2838
+ new (): {
2839
+ /**
2840
+ * @private
2841
+ * This field is private and should not be used, use `tag` instead.
2842
+ */
2843
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2844
+ readonly tag: Recovered_Tags.Skipped;
2845
+ };
2846
+ "new"(): {
2847
+ /**
2848
+ * @private
2849
+ * This field is private and should not be used, use `tag` instead.
2850
+ */
2851
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2852
+ readonly tag: Recovered_Tags.Skipped;
2853
+ };
2854
+ instanceOf(obj: any): obj is {
2855
+ /**
2856
+ * @private
2857
+ * This field is private and should not be used, use `tag` instead.
2858
+ */
2859
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2860
+ readonly tag: Recovered_Tags.Skipped;
2861
+ };
2862
+ };
2863
+ NotFound: {
2864
+ new (): {
2865
+ /**
2866
+ * @private
2867
+ * This field is private and should not be used, use `tag` instead.
2868
+ */
2869
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2870
+ readonly tag: Recovered_Tags.NotFound;
2871
+ };
2872
+ "new"(): {
2873
+ /**
2874
+ * @private
2875
+ * This field is private and should not be used, use `tag` instead.
2876
+ */
2877
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2878
+ readonly tag: Recovered_Tags.NotFound;
2879
+ };
2880
+ instanceOf(obj: any): obj is {
2881
+ /**
2882
+ * @private
2883
+ * This field is private and should not be used, use `tag` instead.
2884
+ */
2885
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2886
+ readonly tag: Recovered_Tags.NotFound;
2897
2887
  };
2898
2888
  };
2899
- Differs: {
2889
+ Incomplete: {
2900
2890
  new (inner: {
2901
- index: number;
2891
+ issues: Array<RecoveryIssue>;
2902
2892
  }): {
2903
2893
  /**
2904
2894
  * @private
2905
2895
  * This field is private and should not be used, use `tag` instead.
2906
2896
  */
2907
- readonly [uniffiTypeNameSymbol]: "Golden";
2908
- readonly tag: Golden_Tags.Differs;
2897
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2898
+ readonly tag: Recovered_Tags.Incomplete;
2909
2899
  readonly inner: Readonly<{
2910
- index: number;
2900
+ issues: Array<RecoveryIssue>;
2911
2901
  }>;
2912
2902
  };
2913
2903
  "new"(inner: {
2914
- index: number;
2904
+ issues: Array<RecoveryIssue>;
2915
2905
  }): {
2916
2906
  /**
2917
2907
  * @private
2918
2908
  * This field is private and should not be used, use `tag` instead.
2919
2909
  */
2920
- readonly [uniffiTypeNameSymbol]: "Golden";
2921
- readonly tag: Golden_Tags.Differs;
2910
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2911
+ readonly tag: Recovered_Tags.Incomplete;
2922
2912
  readonly inner: Readonly<{
2923
- index: number;
2913
+ issues: Array<RecoveryIssue>;
2924
2914
  }>;
2925
2915
  };
2926
2916
  instanceOf(obj: any): obj is {
@@ -2928,38 +2918,42 @@ export declare const Golden: Readonly<{
2928
2918
  * @private
2929
2919
  * This field is private and should not be used, use `tag` instead.
2930
2920
  */
2931
- readonly [uniffiTypeNameSymbol]: "Golden";
2932
- readonly tag: Golden_Tags.Differs;
2921
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2922
+ readonly tag: Recovered_Tags.Incomplete;
2933
2923
  readonly inner: Readonly<{
2934
- index: number;
2924
+ issues: Array<RecoveryIssue>;
2935
2925
  }>;
2936
2926
  };
2937
2927
  };
2938
- NoneMatches: {
2928
+ Found: {
2939
2929
  new (inner: {
2940
- candidates: Array<number>;
2930
+ credentials: Array<RecoveredCredential>;
2931
+ issues: Array<RecoveryIssue>;
2941
2932
  }): {
2942
2933
  /**
2943
2934
  * @private
2944
2935
  * This field is private and should not be used, use `tag` instead.
2945
2936
  */
2946
- readonly [uniffiTypeNameSymbol]: "Golden";
2947
- readonly tag: Golden_Tags.NoneMatches;
2937
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2938
+ readonly tag: Recovered_Tags.Found;
2948
2939
  readonly inner: Readonly<{
2949
- candidates: Array<number>;
2940
+ credentials: Array<RecoveredCredential>;
2941
+ issues: Array<RecoveryIssue>;
2950
2942
  }>;
2951
2943
  };
2952
2944
  "new"(inner: {
2953
- candidates: Array<number>;
2945
+ credentials: Array<RecoveredCredential>;
2946
+ issues: Array<RecoveryIssue>;
2954
2947
  }): {
2955
2948
  /**
2956
2949
  * @private
2957
2950
  * This field is private and should not be used, use `tag` instead.
2958
2951
  */
2959
- readonly [uniffiTypeNameSymbol]: "Golden";
2960
- readonly tag: Golden_Tags.NoneMatches;
2952
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2953
+ readonly tag: Recovered_Tags.Found;
2961
2954
  readonly inner: Readonly<{
2962
- candidates: Array<number>;
2955
+ credentials: Array<RecoveredCredential>;
2956
+ issues: Array<RecoveryIssue>;
2963
2957
  }>;
2964
2958
  };
2965
2959
  instanceOf(obj: any): obj is {
@@ -2967,14 +2961,70 @@ export declare const Golden: Readonly<{
2967
2961
  * @private
2968
2962
  * This field is private and should not be used, use `tag` instead.
2969
2963
  */
2970
- readonly [uniffiTypeNameSymbol]: "Golden";
2971
- readonly tag: Golden_Tags.NoneMatches;
2964
+ readonly [uniffiTypeNameSymbol]: "Recovered";
2965
+ readonly tag: Recovered_Tags.Found;
2972
2966
  readonly inner: Readonly<{
2973
- candidates: Array<number>;
2967
+ credentials: Array<RecoveredCredential>;
2968
+ issues: Array<RecoveryIssue>;
2974
2969
  }>;
2975
2970
  };
2976
2971
  };
2977
- Unreadable: {
2972
+ }>;
2973
+ /**
2974
+ * What recovery did.
2975
+ */
2976
+ export type Recovered = InstanceType<typeof Recovered['NotRequested' | 'Skipped' | 'NotFound' | 'Incomplete' | 'Found']>;
2977
+ /**
2978
+ * The evidence that singled a recovered verdict out.
2979
+ */
2980
+ export declare enum VerdictRule {
2981
+ OnlyCandidate = 0,
2982
+ /**
2983
+ * Its hash holds over these bytes and no other candidate's does.
2984
+ */
2985
+ HardBinding = 1,
2986
+ /**
2987
+ * Every other candidate with the same hard-binding standing is superseded by an authentic
2988
+ * credential in this report.
2989
+ */
2990
+ NotSuperseded = 2
2991
+ }
2992
+ export declare enum CredentialRef_Tags {
2993
+ Embedded = "Embedded",
2994
+ Recovered = "Recovered"
2995
+ }
2996
+ /**
2997
+ * A credential a verdict names, by the section of the report it sits in.
2998
+ */
2999
+ export declare const CredentialRef: Readonly<{
3000
+ instanceOf: (obj: any) => obj is CredentialRef;
3001
+ Embedded: {
3002
+ new (): {
3003
+ /**
3004
+ * @private
3005
+ * This field is private and should not be used, use `tag` instead.
3006
+ */
3007
+ readonly [uniffiTypeNameSymbol]: "CredentialRef";
3008
+ readonly tag: CredentialRef_Tags.Embedded;
3009
+ };
3010
+ "new"(): {
3011
+ /**
3012
+ * @private
3013
+ * This field is private and should not be used, use `tag` instead.
3014
+ */
3015
+ readonly [uniffiTypeNameSymbol]: "CredentialRef";
3016
+ readonly tag: CredentialRef_Tags.Embedded;
3017
+ };
3018
+ instanceOf(obj: any): obj is {
3019
+ /**
3020
+ * @private
3021
+ * This field is private and should not be used, use `tag` instead.
3022
+ */
3023
+ readonly [uniffiTypeNameSymbol]: "CredentialRef";
3024
+ readonly tag: CredentialRef_Tags.Embedded;
3025
+ };
3026
+ };
3027
+ Recovered: {
2978
3028
  new (inner: {
2979
3029
  index: number;
2980
3030
  }): {
@@ -2982,8 +3032,8 @@ export declare const Golden: Readonly<{
2982
3032
  * @private
2983
3033
  * This field is private and should not be used, use `tag` instead.
2984
3034
  */
2985
- readonly [uniffiTypeNameSymbol]: "Golden";
2986
- readonly tag: Golden_Tags.Unreadable;
3035
+ readonly [uniffiTypeNameSymbol]: "CredentialRef";
3036
+ readonly tag: CredentialRef_Tags.Recovered;
2987
3037
  readonly inner: Readonly<{
2988
3038
  index: number;
2989
3039
  }>;
@@ -2995,8 +3045,8 @@ export declare const Golden: Readonly<{
2995
3045
  * @private
2996
3046
  * This field is private and should not be used, use `tag` instead.
2997
3047
  */
2998
- readonly [uniffiTypeNameSymbol]: "Golden";
2999
- readonly tag: Golden_Tags.Unreadable;
3048
+ readonly [uniffiTypeNameSymbol]: "CredentialRef";
3049
+ readonly tag: CredentialRef_Tags.Recovered;
3000
3050
  readonly inner: Readonly<{
3001
3051
  index: number;
3002
3052
  }>;
@@ -3006,8 +3056,8 @@ export declare const Golden: Readonly<{
3006
3056
  * @private
3007
3057
  * This field is private and should not be used, use `tag` instead.
3008
3058
  */
3009
- readonly [uniffiTypeNameSymbol]: "Golden";
3010
- readonly tag: Golden_Tags.Unreadable;
3059
+ readonly [uniffiTypeNameSymbol]: "CredentialRef";
3060
+ readonly tag: CredentialRef_Tags.Recovered;
3011
3061
  readonly inner: Readonly<{
3012
3062
  index: number;
3013
3063
  }>;
@@ -3015,54 +3065,40 @@ export declare const Golden: Readonly<{
3015
3065
  };
3016
3066
  }>;
3017
3067
  /**
3018
- * C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison: the embedded active
3019
- * manifest against what the repository holds.
3020
- */
3021
- export type Golden = InstanceType<typeof Golden['Matches' | 'Differs' | 'NoneMatches' | 'Unreadable']>;
3022
- /**
3023
- * The evidence that singled a recovered verdict out.
3068
+ * A credential a verdict names, by the section of the report it sits in.
3024
3069
  */
3025
- export declare enum VerdictRule {
3026
- OnlyCandidate = 0,
3027
- /**
3028
- * Its hash holds over these bytes and no other candidate's does.
3029
- */
3030
- HardBinding = 1,
3031
- /**
3032
- * Every other candidate with the same hard-binding standing is superseded by a credential
3033
- * in this report.
3034
- */
3035
- NotSuperseded = 2
3036
- }
3070
+ export type CredentialRef = InstanceType<typeof CredentialRef['Embedded' | 'Recovered']>;
3037
3071
  export declare enum Verdict_Tags {
3038
3072
  Unsigned = "Unsigned",
3039
3073
  Inconclusive = "Inconclusive",
3040
3074
  Embedded = "Embedded",
3041
3075
  Invalid = "Invalid",
3042
3076
  Recovered = "Recovered",
3043
- RecoveredDerivative = "RecoveredDerivative",
3044
3077
  Ambiguous = "Ambiguous"
3045
3078
  }
3046
3079
  /**
3047
- * What this verify concludes about the asset, chosen from [`AssetVerification::credentials`](super::AssetVerification::credentials)
3048
- * on signed evidence alone. Policy over the evidence: no credential's validation state changes,
3049
- * and the list stays whole beside it.
3080
+ * What this verify concludes about the asset, chosen among the credentials it found on signed
3081
+ * evidence alone. Policy over the evidence: no credential's validation state changes, and every
3082
+ * credential stays in the report beside it, which a verdict names by the section it sits in.
3050
3083
  *
3051
- * The embedded manifest is the verdict whenever the asset carries one that is not `Invalid`
3052
- * and the golden comparison does not contradict it. When it `differs` from what the repository
3053
- * holds, or several recovered candidates leave the comparison indeterminate, the embedded and
3054
- * the recovered manifests are reported as ambiguous: C2PA 2.4's substitution use case leaves
3055
- * that trust decision to the client.
3084
+ * The embedded manifest is the verdict whenever it stands, unless the golden comparison finds it
3085
+ * contradicted: a signed recovered credential is `Different`, even beside one that is the `Same`.
3086
+ * Then the embedded and those are reported as ambiguous: C2PA's substitution use cases (UC2, UC3)
3087
+ * leave the trust decision between them to the client, so a contradiction needs a signature that
3088
+ * holds, not a signer this verify trusts. A forged one contradicts nothing, and neither does the
3089
+ * embedded manifest's own `parentOf` when an authentic signer states it: that is its history.
3056
3090
  *
3057
- * Otherwise a recovered candidate is named only when evidence singles it out, and only among
3058
- * those that are authentic (they fail on nothing but a hash mismatch) and state a hard binding.
3059
- * The verdict is about THESE bytes, so a candidate whose hash holds over them outranks any whose
3060
- * hash does not, whatever the repository calls its head; among equals, one that no other
3061
- * credential supersedes (the successor's signed `parentOf` link) outranks the rest. A repository
3062
- * score, a signature time or a position in the list is not evidence of which manifest belongs to
3063
- * these bytes, so candidates those alone would separate are reported as ambiguous. When no
3064
- * credential is both authentic and bound to some bytes, the verdict is `Invalid`, never a
3065
- * recovered one: a manifest that fails its own signature or signer vouches for nothing.
3091
+ * Among recovered credentials, only an authentic one (trusted, failing on nothing but a hash
3092
+ * mismatch) that states a hard binding is evidence.
3093
+ *
3094
+ * Otherwise a recovered credential is named only when evidence singles it out among those. The
3095
+ * verdict is about THESE bytes, so one whose hash holds over them outranks any whose hash does
3096
+ * not, whatever the repository calls its head; among equals, one that no authentic credential
3097
+ * supersedes (the successor's signed `parentOf` link) outranks the rest. A repository score, a
3098
+ * signature time or a position in the list is not evidence of which manifest belongs to these
3099
+ * bytes, so credentials those alone would separate are reported as ambiguous. When the verify
3100
+ * found credentials and none is evidence, the verdict is `Invalid`: a manifest that fails its own
3101
+ * signature or signer vouches for nothing.
3066
3102
  */
3067
3103
  export declare const Verdict: Readonly<{
3068
3104
  instanceOf: (obj: any) => obj is Verdict;
@@ -3145,31 +3181,21 @@ export declare const Verdict: Readonly<{
3145
3181
  };
3146
3182
  };
3147
3183
  Invalid: {
3148
- new (inner: {
3149
- index: number;
3150
- }): {
3184
+ new (): {
3151
3185
  /**
3152
3186
  * @private
3153
3187
  * This field is private and should not be used, use `tag` instead.
3154
3188
  */
3155
3189
  readonly [uniffiTypeNameSymbol]: "Verdict";
3156
3190
  readonly tag: Verdict_Tags.Invalid;
3157
- readonly inner: Readonly<{
3158
- index: number;
3159
- }>;
3160
3191
  };
3161
- "new"(inner: {
3162
- index: number;
3163
- }): {
3192
+ "new"(): {
3164
3193
  /**
3165
3194
  * @private
3166
3195
  * This field is private and should not be used, use `tag` instead.
3167
3196
  */
3168
3197
  readonly [uniffiTypeNameSymbol]: "Verdict";
3169
3198
  readonly tag: Verdict_Tags.Invalid;
3170
- readonly inner: Readonly<{
3171
- index: number;
3172
- }>;
3173
3199
  };
3174
3200
  instanceOf(obj: any): obj is {
3175
3201
  /**
@@ -3178,9 +3204,6 @@ export declare const Verdict: Readonly<{
3178
3204
  */
3179
3205
  readonly [uniffiTypeNameSymbol]: "Verdict";
3180
3206
  readonly tag: Verdict_Tags.Invalid;
3181
- readonly inner: Readonly<{
3182
- index: number;
3183
- }>;
3184
3207
  };
3185
3208
  };
3186
3209
  Recovered: {
@@ -3227,53 +3250,9 @@ export declare const Verdict: Readonly<{
3227
3250
  }>;
3228
3251
  };
3229
3252
  };
3230
- RecoveredDerivative: {
3231
- new (inner: {
3232
- index: number;
3233
- decidedBy: VerdictRule;
3234
- }): {
3235
- /**
3236
- * @private
3237
- * This field is private and should not be used, use `tag` instead.
3238
- */
3239
- readonly [uniffiTypeNameSymbol]: "Verdict";
3240
- readonly tag: Verdict_Tags.RecoveredDerivative;
3241
- readonly inner: Readonly<{
3242
- index: number;
3243
- decidedBy: VerdictRule;
3244
- }>;
3245
- };
3246
- "new"(inner: {
3247
- index: number;
3248
- decidedBy: VerdictRule;
3249
- }): {
3250
- /**
3251
- * @private
3252
- * This field is private and should not be used, use `tag` instead.
3253
- */
3254
- readonly [uniffiTypeNameSymbol]: "Verdict";
3255
- readonly tag: Verdict_Tags.RecoveredDerivative;
3256
- readonly inner: Readonly<{
3257
- index: number;
3258
- decidedBy: VerdictRule;
3259
- }>;
3260
- };
3261
- instanceOf(obj: any): obj is {
3262
- /**
3263
- * @private
3264
- * This field is private and should not be used, use `tag` instead.
3265
- */
3266
- readonly [uniffiTypeNameSymbol]: "Verdict";
3267
- readonly tag: Verdict_Tags.RecoveredDerivative;
3268
- readonly inner: Readonly<{
3269
- index: number;
3270
- decidedBy: VerdictRule;
3271
- }>;
3272
- };
3273
- };
3274
3253
  Ambiguous: {
3275
3254
  new (inner: {
3276
- candidates: Array<number>;
3255
+ candidates: Array<CredentialRef>;
3277
3256
  }): {
3278
3257
  /**
3279
3258
  * @private
@@ -3282,11 +3261,11 @@ export declare const Verdict: Readonly<{
3282
3261
  readonly [uniffiTypeNameSymbol]: "Verdict";
3283
3262
  readonly tag: Verdict_Tags.Ambiguous;
3284
3263
  readonly inner: Readonly<{
3285
- candidates: Array<number>;
3264
+ candidates: Array<CredentialRef>;
3286
3265
  }>;
3287
3266
  };
3288
3267
  "new"(inner: {
3289
- candidates: Array<number>;
3268
+ candidates: Array<CredentialRef>;
3290
3269
  }): {
3291
3270
  /**
3292
3271
  * @private
@@ -3295,7 +3274,7 @@ export declare const Verdict: Readonly<{
3295
3274
  readonly [uniffiTypeNameSymbol]: "Verdict";
3296
3275
  readonly tag: Verdict_Tags.Ambiguous;
3297
3276
  readonly inner: Readonly<{
3298
- candidates: Array<number>;
3277
+ candidates: Array<CredentialRef>;
3299
3278
  }>;
3300
3279
  };
3301
3280
  instanceOf(obj: any): obj is {
@@ -3306,50 +3285,54 @@ export declare const Verdict: Readonly<{
3306
3285
  readonly [uniffiTypeNameSymbol]: "Verdict";
3307
3286
  readonly tag: Verdict_Tags.Ambiguous;
3308
3287
  readonly inner: Readonly<{
3309
- candidates: Array<number>;
3288
+ candidates: Array<CredentialRef>;
3310
3289
  }>;
3311
3290
  };
3312
3291
  };
3313
3292
  }>;
3314
3293
  /**
3315
- * What this verify concludes about the asset, chosen from [`AssetVerification::credentials`](super::AssetVerification::credentials)
3316
- * on signed evidence alone. Policy over the evidence: no credential's validation state changes,
3317
- * and the list stays whole beside it.
3294
+ * What this verify concludes about the asset, chosen among the credentials it found on signed
3295
+ * evidence alone. Policy over the evidence: no credential's validation state changes, and every
3296
+ * credential stays in the report beside it, which a verdict names by the section it sits in.
3318
3297
  *
3319
- * The embedded manifest is the verdict whenever the asset carries one that is not `Invalid`
3320
- * and the golden comparison does not contradict it. When it `differs` from what the repository
3321
- * holds, or several recovered candidates leave the comparison indeterminate, the embedded and
3322
- * the recovered manifests are reported as ambiguous: C2PA 2.4's substitution use case leaves
3323
- * that trust decision to the client.
3298
+ * The embedded manifest is the verdict whenever it stands, unless the golden comparison finds it
3299
+ * contradicted: a signed recovered credential is `Different`, even beside one that is the `Same`.
3300
+ * Then the embedded and those are reported as ambiguous: C2PA's substitution use cases (UC2, UC3)
3301
+ * leave the trust decision between them to the client, so a contradiction needs a signature that
3302
+ * holds, not a signer this verify trusts. A forged one contradicts nothing, and neither does the
3303
+ * embedded manifest's own `parentOf` when an authentic signer states it: that is its history.
3324
3304
  *
3325
- * Otherwise a recovered candidate is named only when evidence singles it out, and only among
3326
- * those that are authentic (they fail on nothing but a hash mismatch) and state a hard binding.
3327
- * The verdict is about THESE bytes, so a candidate whose hash holds over them outranks any whose
3328
- * hash does not, whatever the repository calls its head; among equals, one that no other
3329
- * credential supersedes (the successor's signed `parentOf` link) outranks the rest. A repository
3330
- * score, a signature time or a position in the list is not evidence of which manifest belongs to
3331
- * these bytes, so candidates those alone would separate are reported as ambiguous. When no
3332
- * credential is both authentic and bound to some bytes, the verdict is `Invalid`, never a
3333
- * recovered one: a manifest that fails its own signature or signer vouches for nothing.
3334
- */
3335
- export type Verdict = InstanceType<typeof Verdict['Unsigned' | 'Inconclusive' | 'Embedded' | 'Invalid' | 'Recovered' | 'RecoveredDerivative' | 'Ambiguous']>;
3336
- /**
3337
- * Complete asset verification result: every credential, the recovery state, the C2PA
3338
- * golden-flow comparison when there was something to compare, and the verdict the SDK's rules
3339
- * choose. See [`asset::verdict::Verdict`].
3305
+ * Among recovered credentials, only an authentic one (trusted, failing on nothing but a hash
3306
+ * mismatch) that states a hard binding is evidence.
3307
+ *
3308
+ * Otherwise a recovered credential is named only when evidence singles it out among those. The
3309
+ * verdict is about THESE bytes, so one whose hash holds over them outranks any whose hash does
3310
+ * not, whatever the repository calls its head; among equals, one that no authentic credential
3311
+ * supersedes (the successor's signed `parentOf` link) outranks the rest. A repository score, a
3312
+ * signature time or a position in the list is not evidence of which manifest belongs to these
3313
+ * bytes, so credentials those alone would separate are reported as ambiguous. When the verify
3314
+ * found credentials and none is evidence, the verdict is `Invalid`: a manifest that fails its own
3315
+ * signature or signer vouches for nothing.
3316
+ */
3317
+ export type Verdict = InstanceType<typeof Verdict['Unsigned' | 'Inconclusive' | 'Embedded' | 'Invalid' | 'Recovered' | 'Ambiguous']>;
3318
+ /**
3319
+ * Complete asset verification result, one section per step, the verdict naming a credential
3320
+ * by its section.
3340
3321
  */
3341
3322
  export type AssetVerification = {
3342
- credentials: Array<CredentialLike>;
3343
- recovery: RecoverySummary;
3344
- golden?: Golden;
3323
+ /**
3324
+ * The manifest the asset carries, standing or not.
3325
+ */
3326
+ embedded?: CredentialLike;
3327
+ recovered: Recovered;
3345
3328
  verdict: Verdict;
3346
3329
  };
3347
3330
  /**
3348
3331
  * Generated factory for {@link AssetVerification} record objects.
3349
3332
  */
3350
3333
  export declare const AssetVerification: Readonly<{
3351
- create: (partial: Partial<AssetVerification> & Required<Omit<AssetVerification, "golden">>) => AssetVerification;
3352
- new: (partial: Partial<AssetVerification> & Required<Omit<AssetVerification, "golden">>) => AssetVerification;
3334
+ create: (partial: Partial<AssetVerification> & Required<Omit<AssetVerification, "embedded">>) => AssetVerification;
3335
+ new: (partial: Partial<AssetVerification> & Required<Omit<AssetVerification, "embedded">>) => AssetVerification;
3353
3336
  defaults: () => Partial<AssetVerification>;
3354
3337
  }>;
3355
3338
  export declare enum Repository_Tags {
@@ -4331,9 +4314,9 @@ export declare enum RecoveryTrigger {
4331
4314
  *
4332
4315
  * It queries the repository on every verify, without making it load-bearing on the asset's own
4333
4316
  * credential: the flow provides information about a substitution rather than gating the local
4334
- * manifest, so a repository that cannot be reached leaves [`RecoveryStatus::Incomplete`](super::RecoveryStatus::Incomplete), the
4335
- * reason as a [`RecoveryIssue`](super::RecoveryIssue), and no [`Golden`](super::golden::Golden). A caller for whom a cross-check that never
4336
- * ran must not pass for agreement branches on that status.
4317
+ * manifest, so a repository that cannot be reached leaves [`Recovered::Incomplete`](super::Recovered::Incomplete), which
4318
+ * carries the reason as a [`RecoveryIssue`](super::RecoveryIssue) and no credential to compare. A caller for whom a
4319
+ * cross-check that never ran must not pass for agreement branches on that state.
4337
4320
  */
4338
4321
  Always = 1
4339
4322
  }
@@ -4663,8 +4646,7 @@ export interface AssetVerifierLike {
4663
4646
  * a manifest, or nothing: then the asset is read for what it carries and no repository is
4664
4647
  * asked. `plugins` are the caller's additional container readers, in dispatch order.
4665
4648
  * An empty list uses the registered C2PA handlers, including any loaded native modules.
4666
- * Returns embedded/recovered credentials plus typed recovery and golden-comparison
4667
- * outcomes.
4649
+ * Returns the embedded credential, what recovery did, and the verdict over both.
4668
4650
  * `format` optionally declares the media type for inputs such as SVG and plain text.
4669
4651
  *
4670
4652
  * # Errors
@@ -4703,8 +4685,7 @@ export declare class AssetVerifier extends UniffiAbstractObject implements Asset
4703
4685
  * a manifest, or nothing: then the asset is read for what it carries and no repository is
4704
4686
  * asked. `plugins` are the caller's additional container readers, in dispatch order.
4705
4687
  * An empty list uses the registered C2PA handlers, including any loaded native modules.
4706
- * Returns embedded/recovered credentials plus typed recovery and golden-comparison
4707
- * outcomes.
4688
+ * Returns the embedded credential, what recovery did, and the verdict over both.
4708
4689
  * `format` optionally declares the media type for inputs such as SVG and plain text.
4709
4690
  *
4710
4691
  * # Errors
@@ -5108,12 +5089,12 @@ declare const _default$1: Readonly<{
5108
5089
  lower(value: Coordinate, alloc: RustBufferAllocator): UniffiByteArray;
5109
5090
  };
5110
5091
  FfiConverterTypeCredential: FfiConverterObject<CredentialLike>;
5111
- FfiConverterTypeCredentialOrigin: {
5112
- readFromCursor(c: Cursor): CredentialOrigin;
5113
- writeIntoCursor(value: CredentialOrigin, c: Cursor): void;
5114
- allocationSize(value: CredentialOrigin): number;
5115
- lift(value: UniffiByteArray): CredentialOrigin;
5116
- lower(value: CredentialOrigin, alloc: RustBufferAllocator): UniffiByteArray;
5092
+ FfiConverterTypeCredentialRef: {
5093
+ readFromCursor(c: Cursor): CredentialRef;
5094
+ writeIntoCursor(value: CredentialRef, c: Cursor): void;
5095
+ allocationSize(value: CredentialRef): number;
5096
+ lift(value: UniffiByteArray): CredentialRef;
5097
+ lower(value: CredentialRef, alloc: RustBufferAllocator): UniffiByteArray;
5117
5098
  };
5118
5099
  FfiConverterTypeDataSource: {
5119
5100
  readFromCursor(c: Cursor): DataSource;
@@ -5165,13 +5146,6 @@ declare const _default$1: Readonly<{
5165
5146
  lift(value: UniffiByteArray): Frame;
5166
5147
  lower(value: Frame, alloc: RustBufferAllocator): UniffiByteArray;
5167
5148
  };
5168
- FfiConverterTypeGolden: {
5169
- readFromCursor(c: Cursor): Golden;
5170
- writeIntoCursor(value: Golden, c: Cursor): void;
5171
- allocationSize(value: Golden): number;
5172
- lift(value: UniffiByteArray): Golden;
5173
- lower(value: Golden, alloc: RustBufferAllocator): UniffiByteArray;
5174
- };
5175
5149
  FfiConverterTypeHardBinding: {
5176
5150
  readFromCursor(c: Cursor): HardBinding;
5177
5151
  writeIntoCursor(value: HardBinding, c: Cursor): void;
@@ -5250,6 +5224,13 @@ declare const _default$1: Readonly<{
5250
5224
  lift(value: UniffiByteArray): ManifestAssertionKind;
5251
5225
  lower(value: ManifestAssertionKind, alloc: RustBufferAllocator): UniffiByteArray;
5252
5226
  };
5227
+ FfiConverterTypeManifestComparison: {
5228
+ readFromCursor(c: Cursor): ManifestComparison;
5229
+ writeIntoCursor(value: ManifestComparison, c: Cursor): void;
5230
+ allocationSize(value: ManifestComparison): number;
5231
+ lift(value: UniffiByteArray): ManifestComparison;
5232
+ lower(value: ManifestComparison, alloc: RustBufferAllocator): UniffiByteArray;
5233
+ };
5253
5234
  FfiConverterTypeManifestStore: {
5254
5235
  readFromCursor(c: Cursor): ManifestStore;
5255
5236
  writeIntoCursor(value: ManifestStore, c: Cursor): void;
@@ -5280,6 +5261,20 @@ declare const _default$1: Readonly<{
5280
5261
  lift(value: UniffiByteArray): RangeType;
5281
5262
  lower(value: RangeType, alloc: RustBufferAllocator): UniffiByteArray;
5282
5263
  };
5264
+ FfiConverterTypeRecovered: {
5265
+ readFromCursor(c: Cursor): Recovered;
5266
+ writeIntoCursor(value: Recovered, c: Cursor): void;
5267
+ allocationSize(value: Recovered): number;
5268
+ lift(value: UniffiByteArray): Recovered;
5269
+ lower(value: Recovered, alloc: RustBufferAllocator): UniffiByteArray;
5270
+ };
5271
+ FfiConverterTypeRecoveredCredential: {
5272
+ readFromCursor(c: Cursor): RecoveredCredential;
5273
+ writeIntoCursor(value: RecoveredCredential, c: Cursor): void;
5274
+ allocationSize(value: RecoveredCredential): number;
5275
+ lift(value: UniffiByteArray): RecoveredCredential;
5276
+ lower(value: RecoveredCredential, alloc: RustBufferAllocator): UniffiByteArray;
5277
+ };
5283
5278
  FfiConverterTypeRecovery: {
5284
5279
  readFromCursor(c: Cursor): Recovery;
5285
5280
  writeIntoCursor(value: Recovery, c: Cursor): void;
@@ -5294,20 +5289,6 @@ declare const _default$1: Readonly<{
5294
5289
  lift(value: UniffiByteArray): RecoveryIssue;
5295
5290
  lower(value: RecoveryIssue, alloc: RustBufferAllocator): UniffiByteArray;
5296
5291
  };
5297
- FfiConverterTypeRecoveryStatus: {
5298
- readFromCursor(c: Cursor): RecoveryStatus;
5299
- writeIntoCursor(value: RecoveryStatus, c: Cursor): void;
5300
- allocationSize(value: RecoveryStatus): number;
5301
- lift(value: UniffiByteArray): RecoveryStatus;
5302
- lower(value: RecoveryStatus, alloc: RustBufferAllocator): UniffiByteArray;
5303
- };
5304
- FfiConverterTypeRecoverySummary: {
5305
- readFromCursor(c: Cursor): RecoverySummary;
5306
- writeIntoCursor(value: RecoverySummary, c: Cursor): void;
5307
- allocationSize(value: RecoverySummary): number;
5308
- lift(value: UniffiByteArray): RecoverySummary;
5309
- lower(value: RecoverySummary, alloc: RustBufferAllocator): UniffiByteArray;
5310
- };
5311
5292
  FfiConverterTypeRecoveryTrigger: {
5312
5293
  readFromCursor(c: Cursor): RecoveryTrigger;
5313
5294
  writeIntoCursor(value: RecoveryTrigger, c: Cursor): void;