import type { Store } from 'redux';
import type { Logger } from 'myst-cli-utils';
import type { RuleId, ValidatedMystPlugin } from 'myst-common';
import { HttpsProxyAgent } from 'https-proxy-agent';
import type { Limit } from 'p-limit';
import type { BuildWarning } from '../store/index.js';
import type { RootState } from '../store/reducers.js';
import type { ISession } from './types.js';
import { SessionManager } from '@jupyterlab/services';
import type { RequestInfo, RequestInit } from 'node-fetch';
import { Response } from 'node-fetch';
import type { PluginInfo } from 'myst-config';
export declare function logUpdateAvailable({ current, latest, upgradeCommand, twitter, bsky, }: {
    current: string;
    latest: string;
    upgradeCommand: string;
    twitter?: string;
    bsky?: string;
}): string;
export declare class Session implements ISession {
    API_URL: string;
    configFiles: string[];
    store: Store<RootState>;
    $logger: Logger;
    doiLimiter: Limit;
    proxyAgent?: HttpsProxyAgent<string>;
    _shownUpgrade: boolean;
    _latestVersion?: string;
    _jupyterSessionManagerPromise?: Promise<SessionManager | undefined>;
    get log(): Logger;
    constructor(opts?: {
        logger?: Logger;
        doiLimiter?: Limit;
    });
    showUpgradeNotice(): void;
    reload(): Promise<this>;
    fetch(url: URL | RequestInfo, init?: RequestInit): Promise<Response>;
    plugins: ValidatedMystPlugin | undefined;
    loadPlugins(plugins: PluginInfo[]): Promise<ValidatedMystPlugin>;
    sourcePath(): string;
    buildPath(): string;
    sitePath(): string;
    contentPath(): string;
    publicPath(): string;
    _clones: ISession[];
    clone(): Promise<Session>;
    getAllWarnings(ruleId: RuleId): (BuildWarning & {
        file: string;
    })[];
    jupyterSessionManager(): Promise<SessionManager | undefined>;
    private createJupyterSessionManager;
    dispose(): void;
}
//# sourceMappingURL=session.d.ts.map