import type { ColdCode } from "../core/types.js"; import type { Kind } from "../tables/versions.js"; import { Matter, type MatterInit } from "./matter.js"; /** Digest callback seam used by SAID derivation helpers. */ export type SaidDigestFn = (ser: Uint8Array, code: string) => Uint8Array; /** Options for deriving one top-level saidive field from a SAD. */ export interface SaidifyOptions { code?: string; kind?: Kind; label?: string; ignore?: string[]; digest?: SaidDigestFn; } /** Options for computing multiple saidive fields from one sized SAD. */ export interface SaidifyFieldsOptions { kind?: Kind; saids: Record; digest?: SaidDigestFn; } /** * Self-addressing identifier digest primitive. * * KERIpy substance: `Saider` is digest-qualified material used as SAD SAID * values; this class validates digest-family code semantics. */ export declare class Saider extends Matter { constructor(init: Matter | MatterInit); get said(): string; get digest(): Uint8Array; /** * Derive one SAID from a SAD, inject it at `label`, and return the updated SAD. * * KERIpy places `saidify` on `Saider`, not `Serder`: the responsibility here * is digest derivation for one saidive field, while event-specific policies * such as mirrored `i == d` handling belong in higher layers. */ static saidify(sad: Record, { code, kind, label, ignore, digest, }: SaidifyOptions): { saider: Saider; sad: Record; }; /** * Compute all digestive saidive fields from the same sized-dummied SAD bytes. * * This mirrors the KERIpy `makify/_compute` model for top-level saidive * fields: resolve effective field codes first, dummy only digestive fields, * size the version string once, hash once, then fill all digestive fields * from that same raw serialization. */ static saidifyFields(sad: Record, { kind, saids, digest, }: SaidifyFieldsOptions): { sad: Record; raw: Uint8Array; saiders: Record; }; } /** Parse and hydrate `Saider` from txt/qb2 bytes. */ export declare function parseSaider(input: Uint8Array, cold: Extract): Saider; //# sourceMappingURL=saider.d.ts.map