import { StreamProducer } from '../io/StreamProducer';
import { CvLocale, StringDictionary } from '../util';
import { BlobClientResponse } from './BlobClientResponse';
import { ClientListener } from "./ClientListener";
import { JsonClientResponse } from './JsonClientResponse';
import { TextClientResponse } from './TextClientResponse';
import { VoidClientResponse } from './VoidClientResponse';
export interface Client {
    readonly lastActivity: Date;
    isAnyUserInBriefcaseMode(tenantId: string): Promise<boolean>;
    isUserInBriefcaseMode(userInfo: {}): Promise<boolean>;
    addClientListener(clientListener: ClientListener, locale: CvLocale): any;
    removeClientListener(clientListener: ClientListener): any;
    getBlob(baseUrl: string, resourcePath?: string): Promise<BlobClientResponse>;
    getText(baseUrl: string, resourcePath?: string): Promise<TextClientResponse>;
    openStream(baseUrl: string, resourcePath?: string): Promise<StreamProducer>;
    postMultipart<T>(baseUrl: string, resourcePath: string, formData: FormData): Promise<VoidClientResponse>;
    getJson(baseUrl: string, resourcePath: string, queryParams?: StringDictionary): Promise<JsonClientResponse>;
    postJson(baseUrl: string, resourcePath: string, body?: StringDictionary): Promise<JsonClientResponse>;
    putJson(baseUrl: string, resourcePath: string, body?: StringDictionary): Promise<JsonClientResponse>;
    deleteJson(baseUrl: string, resourcePath: string): Promise<JsonClientResponse>;
}
