Encrypted, ephemeral, private memos on atproto
1import type { Did, Handle } from "@atcute/lexicons";
2import type { Client, CredentialManager } from "@atcute/client";
3import type {
4 ComAtprotoRepoCreateRecord,
5 ComAtprotoRepoDeleteRecord,
6 ComAtprotoRepoGetRecord,
7 ComAtprotoRepoListRecords,
8} from "@atcute/atproto";
9
10export interface MiniDoc {
11 did: Did;
12 handle: Handle;
13 pds: string;
14 signing_key: string;
15}
16
17export interface BaseClientOptions {
18 handle: string;
19 appPassword: string;
20}
21
22export interface XRPCQueries {
23 "com.atproto.repo.getRecord": ComAtprotoRepoGetRecord.mainSchema;
24 "com.atproto.repo.listRecords": ComAtprotoRepoListRecords.mainSchema;
25}
26
27export interface XRPCProcedures {
28 "com.atproto.repo.createRecord": ComAtprotoRepoCreateRecord.mainSchema;
29 "com.atproto.repo.deleteRecord": ComAtprotoRepoDeleteRecord.mainSchema;
30}
31
32export interface ClientRequirements<Options extends BaseClientOptions> {
33 miniDoc: MiniDoc;
34 manager: CredentialManager;
35 rpc: Client<XRPCQueries, XRPCProcedures>;
36 options: Options;
37}