import { Observable } from "rxjs";

import { UserId } from "../../../types/guid";
import { SignedSecurityState } from "../../types";

export abstract class SecurityStateService {
  /**
   * Retrieves the security state for the provided user.
   * Note: This state is not yet validated. To get a validated state, the SDK crypto client
   * must be used. This security state is validated on initialization of the SDK.
   */
  abstract accountSecurityState$(userId: UserId): Observable<SignedSecurityState | null>;
}
