/**
* MTKruto - Cross-runtime JavaScript library for building Telegram clients
* Copyright (C) 2023-2026 Roj
*
* This file is part of MTKruto.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*/
import { LruCache } from "../0_deps.js";
import type { Storage } from "../2_storage.js";
import { Api, type SecretChats } from "../2_tl.js";
export interface SerializedSecretChatState {
encryptedChat: Api.EncryptedChat;
authKey: Uint8Array;
authKeyId: bigint;
authKeyId_: Uint8Array;
authKeyUseCount: number;
isAuthKeyUsed: boolean;
authKeyCreatedAt: number;
previousAuthKey: Uint8Array;
previousAuthKeyId_: Uint8Array;
previousAuthKeyDiscardAfterSeqNo: number;
isAwaitingNewAuthKeyConfirmation: boolean;
a: bigint;
g: number;
prime: bigint;
pendingExponent: bigint;
rekeyId: bigint;
rekeyA: bigint;
toCommitId: bigint;
toCommitAuthKey: Uint8Array;
toCommitAuthKeyId: bigint;
toCommitAuthKeyId_: Uint8Array;
inSeqNo: number;
outSeqNo: number;
remoteInSeqNo: number;
isGapRequested: boolean;
gapEndSeqNo: number;
pendingMessages: [SecretChats.decryptedMessageLayer, Api.EncryptedMessage][];
outgoingMessages: [number, Uint8Array][];
}
export declare class SecretChatState {
isJustLoaded: boolean;
encryptedChat: Api.EncryptedChat;
authKey: Uint8Array;
authKeyId: bigint;
authKeyId_: Uint8Array;
authKeyUseCount: number;
isAuthKeyUsed: boolean;
authKeyCreatedAt: number;
previousAuthKey: Uint8Array;
previousAuthKeyId_: Uint8Array;
previousAuthKeyDiscardAfterSeqNo: number;
isAwaitingNewAuthKeyConfirmation: boolean;
a: bigint;
g: number;
prime: bigint;
pendingExponent: bigint;
rekeyId: bigint;
rekeyA: bigint;
toCommitId: bigint;
toCommitAuthKey: Uint8Array;
toCommitAuthKeyId: bigint;
toCommitAuthKeyId_: Uint8Array;
inSeqNo: number;
outSeqNo: number;
remoteInSeqNo: number;
isGapRequested: boolean;
gapEndSeqNo: number;
pendingMessages: [SecretChats.decryptedMessageLayer, Api.EncryptedMessage][];
outgoingMessages: LruCache>;
commit(storage: Storage): Promise;
static load(result: SerializedSecretChatState): SecretChatState;
}
//# sourceMappingURL=0_secret_chat_state.d.ts.map