···11import type { BaseClientOptions, ClientRequirements } from "@cistern/shared";
22import type { RecordKey, ResourceUri } from "@atcute/lexicons";
3344+/** Credentials and an optional public key, used for deriving `ProducerParams` */
45export interface ProducerOptions extends BaseClientOptions {
66+ /** An optional record key to a Cistern public key. Assumed to be within the specified user's PDS, and retrieved before instantiation. You can omit this value if you intend to select a public key later */
57 publicKey?: RecordKey;
68}
791010+/** Required parameters for constructing a `Producer`. These are automatically created for you in `createProducer` */
811export type ProducerParams = ClientRequirements<ProducerOptions> & {
1212+ /** Optional public key and its contents */
913 publicKey?: PublicKeyOption;
1014};
11151616+/** A simplified public key, suitable for local storage */
1217export interface PublicKeyOption {
1818+ /** Full AT-URI of this key */
1319 uri: ResourceUri;
2020+2121+ /** Generated friendly name for this public key */
1422 name: string;
2323+2424+ /** The contents of this public key, encoded in base64 */
1525 content: string;
1626}