/**
* 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 type { Connection, ConnectionCallback } from "../2_connection.js";
import { type DC, type TransportProvider } from "../3_transport.js";
import { SessionState } from "./0_session_state.js";
export interface SessionParams {
/** The transport provider to use. Defaults to `transportProviderWebsocket` in browsers and `transportProviderTcp` in other runtimes. */
transportProvider?: TransportProvider;
/** Whether the connection is with a media server. Defaults to false. */
isMedia?: boolean;
}
export declare abstract class Session {
#private;
protected state: SessionState;
protected transport: ReturnType;
constructor(dc: DC, params?: SessionParams);
set onConnectionStateChange(onConnectionStateChange: Connection["stateChangeHandler"]);
set connectionCallback(connectionCallback: ConnectionCallback | undefined);
get dc(): DC;
get isMedia(): boolean;
set serverSalt(serverSalt: bigint);
get serverSalt(): bigint;
get isConnected(): boolean;
connect(): Promise;
protected waitUntilConnected(): Promise;
get isDisconnected(): boolean;
disconnect(): void;
abstract send(body: Uint8Array): Promise;
previewNextMessageId(): bigint;
}
//# sourceMappingURL=1_session.d.ts.map