src/account-store-types.tsTypeScript
@@ -0,0 +1,21 @@
1+
export interface Account {2+
id: string;3+
displayName: string;4+
}5+
6+
export interface PositionedAccount {7+
account: Account;8+
position: string;9+
}10+
11+
export interface AccountStores {12+
primary: {13+
update(id: string, displayName: string): Promise<{ position: string }>;14+
read(id: string): Promise<PositionedAccount>;15+
};16+
replica: {17+
position(): Promise<string>;18+
waitUntil(position: string, timeoutMs: number): Promise<boolean>;19+
read(id: string): Promise<PositionedAccount>;20+
};21+
}