import { DocumentInfo, EmailInfo, PageInfo, ParameterInfo, RenderingExtension, SearchInfo, SearchResult } from '../Models';
import { AiInfo } from '../Types/AiInfoType';
import { ConfigurationInfo } from '../Types/ConfigurationInfoType';
export interface IServiceClient {
    setAccessToken: (accessToken: string) => void;
    registerClient: () => Promise<string>;
    unregisterClient: (clientId: string) => Promise<any>;
    getParameters: (clientId: string, report: string, parameterValues: any) => Promise<ParameterInfo[]>;
    createReportInstance: (clientId: string, report: string, parameterValues: any) => Promise<string>;
    deleteReportInstance: (clientId: string, instanceId: string) => Promise<any>;
    createReportDocument: (clientId: string, instanceId: string, format: string, deviceInfo: any, useCache: boolean, baseDocumentID: string, actionID: string) => Promise<string>;
    sendDocument: (clientId: string, instanceId: string, documentId: string, mailArgs: EmailInfo) => Promise<any>;
    deleteReportDocument: (clientId: string, instanceId: string, documentId: string) => Promise<any>;
    getDocumentUrl: (clientId: string, instanceId: string, documentId: string) => string;
    getDocumentInfo: (clientId: string, instanceId: string, documentId: string) => Promise<DocumentInfo>;
    getPage: (clientId: string, instanceId: string, documentId: string, pageNumber: number) => Promise<PageInfo>;
    getDocumentFormats: () => Promise<RenderingExtension[]>;
    getServiceVersion: () => Promise<string>;
    getServiceConfiguration: () => Promise<ConfigurationInfo>;
    getResource: (clientId: string, instanceId: string, documentId: string, resourceId: string) => Promise<any>;
    getSearchResults: (clientId: string, instanceId: string, documentId: string, searchInfo: SearchInfo) => Promise<SearchResult[]>;
    createAIThread: (clientId: string, instanceId: string, report: string, parameterValues: any) => Promise<AiInfo>;
    getAIResponse: (clientId: string, instanceId: string, documentId: string, threadId: string, query: string) => Promise<string>;
    keepClientAlive: (clientId: string) => Promise<any>;
    getClientsSessionTimeoutSeconds: () => Promise<number>;
    getServiceUrl: () => string;
}
