///
import { EventEmitter } from "events";
import { ILoginInputOptions, ISessionInfo, IStorage } from "@inrupt/solid-client-authn-core";
import ClientAuthentication from "./ClientAuthentication";
export interface ISessionOptions {
secureStorage: IStorage;
insecureStorage: IStorage;
sessionInfo: ISessionInfo;
clientAuthentication: ClientAuthentication;
}
export interface IHandleIncomingRedirectOptions {
restorePreviousSession?: boolean;
useEssSession?: boolean;
url?: string;
}
export declare class Session extends EventEmitter {
readonly info: ISessionInfo;
private clientAuthentication;
private tokenRequestInProgress;
constructor(sessionOptions?: Partial, sessionId?: string);
login: (options: ILoginInputOptions) => Promise;
fetch: (url: RequestInfo, init?: RequestInit | undefined) => Promise;
logout: () => Promise;
handleIncomingRedirect: (inputOptions?: string | IHandleIncomingRedirectOptions) => Promise;
onLogin(callback: () => unknown): void;
onLogout(callback: () => unknown): void;
onSessionRestore(callback: (currentUrl: string) => unknown): void;
}