// SPDX-License-Identifier: AGPL-3.0-or-later // Copyright (C) 2022-2026 Aykut Alparslan KOC using TLDto = Ferrite.TL.baseLayer.dto; namespace Ferrite.Data.Repositories; public interface IAccountPasswordRepository { ValueTask GetPasswordStateAsync(long userId, CancellationToken cancellationToken = default); ValueTask PutPasswordStateAsync(TLDto.TLAccountPasswordState state, CancellationToken cancellationToken = default); ValueTask DeletePasswordStateAsync(long userId, CancellationToken cancellationToken = default); ValueTask PutSrpChallengeAsync(TLDto.TLPasswordSrpChallenge challenge, TimeSpan ttl, CancellationToken cancellationToken = default); ValueTask GetSrpChallengeAsync(long srpId, CancellationToken cancellationToken = default); ValueTask ConsumeSrpChallengeAsync(long srpId, CancellationToken cancellationToken = default); ValueTask PutTemporaryPasswordAsync(TLDto.TLTemporaryPasswordState password, TimeSpan ttl, CancellationToken cancellationToken = default); ValueTask GetTemporaryPasswordAsync(long userId, CancellationToken cancellationToken = default); ValueTask ConsumeTemporaryPasswordAsync(long userId, CancellationToken cancellationToken = default); ValueTask GetResetStateAsync(long userId, CancellationToken cancellationToken = default); ValueTask PutResetStateAsync(TLDto.TLPasswordResetState state, CancellationToken cancellationToken = default); ValueTask DeleteResetStateAsync(long userId, CancellationToken cancellationToken = default); }