import { card } from 'api/card'; import { person } from 'api/person'; import { staff } from 'api/staff'; import { Api, LeapContext, RefreshTokenResponse, RequestContext } from '../api'; import { accounting } from '../api/accounting'; import { app } from '../api/app'; import { calc } from '../api/calc'; import { communication } from '../api/communication'; import { document } from '../api/document'; import { infotrack } from '../api/infotrack'; import { lawconnect } from '../api/lawconnect'; import { matter } from '../api/matter'; import { msteams } from '../api/msteams'; import { register } from '../api/register'; import { schema } from '../api/schema'; import { system } from '../api/system'; export declare abstract class BaseApi implements Api { abstract get accounting(): accounting.Api; abstract get app(): app.Api; abstract get calc(): calc.Api; abstract get card(): card.Api; abstract get communication(): communication.Api; abstract get document(): document.Api; abstract get infotrack(): infotrack.Api; abstract get lawconnect(): lawconnect.Api; abstract get staff(): staff.Api; abstract get msteams(): msteams.Api; abstract get person(): person.Api; abstract get register(): register.Api; abstract get schema(): schema.Api; abstract get matter(): matter.Api; abstract get system(): system.Api; protected _leapContext: LeapContext; protected _isTrustedApp: boolean; private _registeredCommands; private _clientId; private _passiveSystemCommands; private _defaultLocale; private _refreshTokenCache; returnRejectOnPermissionCancel: boolean; constructor(requestContext: RequestContext); get leapContext(): LeapContext; get isTrustedApp(): boolean; private processNewLeapContext; init(leapAuthClientId?: string): Promise; subscribeContextUpdate(onSuccess?: (data: any) => void, onError?: (error: any) => void): void; unsubscribeContextUpdate(): void; getRefreshedAccessToken(): Promise; getDecodedRefreshedAccessToken(): Promise; getRefreshToken(): Promise; private fetchRefreshTokenFromLeapAuth; protected abstract retrieveContext(): void; protected abstract hostRelatedSetup(): void; protected abstract addMouseMoveListener(): void; abstract internalSendAsync(request: any): Promise; abstract internalSend(request: any): void; registerHostMessageHandler(command: string, callback?: (param?: any) => void): void; deregisterHostMessageHandler(command: string): void; /** * A helper function that makes 2-way call easier. It takes care of registering and deregistering message handler for you. * @param request the actual request object from LEAP app * @param requestFn a function specifying how a request object should be sent to the host system. It passes the requestId as parameter so that the request function can attach it to the request object. * @param responseFn a function specifying how a raw response from the host system should be handled / transformed * @return a promise of the final response */ twoWayCall(request: I, requestFn: (requestId: string, request: I) => void, responseFn: (response: any) => O): Promise; protected handleCommand(command: string, payload?: string): void; }