import { Session } from "../Session";
import { DocumentManager, RestDocument } from "./documents";
import { RestWebService, WebServiceType } from "../../webservice";
import { Axios, AxiosProgressEvent } from "axios";
import { AdministrationManager } from "./administration";
import { KeyStorePassword, UserCertificates, UserCredentials } from "../../generated-sources";
export interface RestSession<T_REST_DOCUMENT extends RestDocument> extends Session {
    getHttpClient(): Axios;
    getDocumentManager(): DocumentManager<T_REST_DOCUMENT>;
    uploadDocument(data: Blob, fileName: string, options?: {
        onProgress?: (event: AxiosProgressEvent) => void;
        abortSignal?: AbortSignal;
    }): Promise<T_REST_DOCUMENT>;
    getAdministrationManager(): AdministrationManager<T_REST_DOCUMENT>;
    getUser(): Promise<UserCredentials>;
    getCertificates(): Promise<UserCertificates>;
    updateCertificates(keystoreName: string, keyStorePassword: KeyStorePassword): Promise<UserCertificates | undefined>;
    createWebServiceInstance<T_WEBSERVICE extends RestWebService<any, any, any>>(webServiceType: WebServiceType): T_WEBSERVICE;
}
export declare function instanceOfRestSession(object: any): boolean;
