/*! * Copyright (c) 2026 Interop Alliance. All rights reserved. */ /** * Enrolled-client display labels: the `key-map/client-labels.json` record, a * plain-JSON map from a client's signing-key multibase to the human-chosen * label a "your wallets" surface shows. The did:webvh document is the roster * of record and deliberately carries key material only, so labels live * beside the account's other key-map resources instead -- private, * capability-gated, and shared by every enrolled client (each wallet app * reads and writes the same record). * * The record is display metadata with no authority: a missing or malformed * record degrades to unlabeled rows, an entry whose key the document no * longer lists is simply never shown, and writes are last-write-wins (a lost * race costs at most a label). I/O runs through the two-method * {@link ClientLabelsStore} seam a wallet app satisfies with its own * remote-store class. */ /** * The Space-side seam: the single `client-labels.json` resource in the * private `key-map` collection. */ export interface ClientLabelsStore { /** * The parsed JSON body of `client-labels.json`, or `undefined` when it has * never been written. */ get(): Promise; /** * Writes (upserts) `client-labels.json`. */ put(options: { content: object; }): Promise; } /** * The version-1 labels record: signing-key multibase to label. */ export interface ClientLabelsRecord { version: 1; labels: Record; } /** * Reads the labels record, degrading to an empty record when it is missing * or malformed (labels are display metadata; a broken record must never * block a listing). * * @param options {object} * @param options.store {ClientLabelsStore} * @returns {Promise} */ export declare function readClientLabels({ store }: { store: ClientLabelsStore; }): Promise; /** * Sets (or renames) one client's label, read-modify-write over the stored * record. A blank label removes the entry instead of storing whitespace. * * @param options {object} * @param options.store {ClientLabelsStore} * @param options.signingKeyMultibase {string} * @param options.label {string} * @returns {Promise} the record as written */ export declare function setClientLabel({ store, signingKeyMultibase, label }: { store: ClientLabelsStore; signingKeyMultibase: string; label: string; }): Promise; /** * Drops one client's label (revocation hygiene -- the label of a * disconnected client points at nothing). A record without the entry is a * no-op that writes nothing. * * @param options {object} * @param options.store {ClientLabelsStore} * @param options.signingKeyMultibase {string} * @returns {Promise} the record as stored */ export declare function removeClientLabel({ store, signingKeyMultibase }: { store: ClientLabelsStore; signingKeyMultibase: string; }): Promise; //# sourceMappingURL=clientLabels.d.ts.map