// 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 ILoginTokenRepository { ValueTask PutQrTokenAsync(TLDto.TLQrLoginToken token, TimeSpan ttl, CancellationToken cancellationToken = default); ValueTask GetQrTokenAsync(ReadOnlyMemory token, CancellationToken cancellationToken = default); ValueTask TryReplaceQrTokenAsync(ReadOnlyMemory token, int expectedState, TLDto.TLQrLoginToken replacement, TimeSpan ttl, CancellationToken cancellationToken = default); ValueTask ConsumeQrTokenAsync(ReadOnlyMemory token, int expectedState, CancellationToken cancellationToken = default); ValueTask PutWebTokenAsync(TLDto.TLWebAuthorizationToken token, TimeSpan ttl, CancellationToken cancellationToken = default); ValueTask GetWebTokenAsync( ReadOnlyMemory tokenDigest, CancellationToken cancellationToken = default); ValueTask ConsumeWebTokenAsync( ReadOnlyMemory tokenDigest, CancellationToken cancellationToken = default); }