///
import { AxiosInstance, AxiosResponse } from "axios";
import { ApiSecretRegistration, ApiSecretRegistrationUpdate } from "../component/driver/teamsApp/interfaces/ApiSecretRegistration";
import { AsyncAppValidationDetailsResponse } from "../component/driver/teamsApp/interfaces/AsyncAppValidationDetailsResponse";
import { AsyncAppValidationResponse } from "../component/driver/teamsApp/interfaces/AsyncAppValidationResponse";
import { AsyncAppValidationResultsResponse } from "../component/driver/teamsApp/interfaces/AsyncAppValidationResultsResponse";
import { OauthConfigurationId } from "../component/driver/teamsApp/interfaces/OauthConfigurationId";
import { OauthRegistration } from "../component/driver/teamsApp/interfaces/OauthRegistration";
import { IPublishingAppDenition } from "../component/driver/teamsApp/interfaces/appdefinitions/IPublishingAppDefinition";
import { IValidationResult } from "../component/driver/teamsApp/interfaces/appdefinitions/IValidationResult";
import { AppDefinition } from "../component/driver/teamsApp/interfaces/appdefinitions/appDefinition";
import { AppUser } from "../component/driver/teamsApp/interfaces/appdefinitions/appUser";
import { IBotRegistration } from "../component/resource/botService/appStudio/interfaces/IBotRegistration";
export declare class RetryHandler {
static RETRIES: number;
static Retry(fn: () => Promise): Promise;
}
export declare class TeamsDevPortalClient {
regionEndpoint?: string;
getGlobalEndpoint(): string;
setRegionEndpoint(regionEndpoint: string): void;
setRegionEndpointByToken(authSvcToken: string): Promise;
getEndpoint(): string;
/**
* Creates a new axios instance to call app studio to prevent setting the accessToken on global instance.
* @param {string} token
* @returns {AxiosInstance}
*/
createRequesterWithToken(token: string): AxiosInstance;
/**
* Import an app registration in app studio with the given archived file and returns the app definition.
* @param {string} token - access token
* @param {Buffer} file - Zip file with manifest.json and two icons
* @param {boolean} overwrite - whether to overrite the app if it already exists
* @returns {Promise}
*/
importApp(token: string, file: Buffer, overwrite?: boolean): Promise;
listApps(token: string): Promise;
deleteApp(appStudioToken: string, teamsAppId: string): Promise;
getApp(token: string, teamsAppId: string): Promise;
getBotId(token: string, teamsAppId: string): Promise;
getAppPackage(token: string, teamsAppId: string): Promise;
/**
* Check if app exists in the user's organization by the Teams app id
* @param teamsAppId
* @param token
* @param logProvider
* @returns
*/
checkExistsInTenant(token: string, teamsAppId: string): Promise;
/**
* Publish Teams app to Teams App Catalog
*/
publishTeamsApp(token: string, teamsAppId: string, file: Buffer): Promise;
/**
* Update existed publish request
* @param teamsAppId
* @param file
* @param token
* @returns
*/
publishTeamsAppUpdate(token: string, teamsAppId: string, file: Buffer): Promise;
/**
* Get Stagged Teams app from tenant app catalog
* @param teamsAppId manifest.id, which is externalId in app catalog.
* @param token
* @returns
*/
getStaggedApp(token: string, teamsAppId: string): Promise;
getUserList(token: string, teamsAppId: string): Promise;
checkPermission(token: string, teamsAppId: string, userObjectId: string): Promise;
removePermission(token: string, teamsAppId: string, userToRemove: AppUser): Promise;
grantPermission(token: string, teamsAppId: string, newUser: AppUser): Promise;
/**
* Send the app package for partner center validation
* @param file
* @param token
* @returns
*/
partnerCenterAppPackageValidation(token: string, file: Buffer): Promise;
checkUser(app: AppDefinition, newUser: AppUser): boolean;
/**
* Submit App Validation Request (In-App) for which App Definitions are stored at TDP.
* @param teamsAppId
* @param token
* @param timeoutSeconds
* @returns
*/
submitAppValidationRequest(token: string, teamsAppId: string): Promise;
/**
* Get App validation requests sumitted by the user
*/
getAppValidationRequestList(token: string, teamsAppId: string): Promise;
/**
* Get App validation results by provided app validation id
* @param appValidationId
* @param token
* @param timeoutSeconds
* @returns
*/
getAppValidationById(token: string, appValidationId: string): Promise;
getSideloadingStatus(token: string): Promise;
/**
* Create the Api Key registration.
* @param token
* @param apiKeyRegistration
*/
createApiKeyRegistration(token: string, apiKeyRegistration: ApiSecretRegistration): Promise;
/**
* Get the Api Key registration by Id.
* @param token
* @param apiSecretRegistrationId
*/
getApiKeyRegistrationById(token: string, apiSecretRegistrationId: string): Promise;
updateApiKeyRegistration(token: string, apiKeyRegistration: ApiSecretRegistrationUpdate, apiKeyRegistrationId: string): Promise;
getOauthRegistrationById(token: string, oauthRegistrationId: string): Promise;
createOauthRegistration(token: string, oauthRegistration: OauthRegistration): Promise;
updateOauthRegistration(token: string, oauthRegistration: OauthRegistration, oauthRegistrationId: string): Promise;
getBotRegistration(token: string, botId: string): Promise;
listBots(token: string): Promise;
deleteBot(token: string, botId: string): Promise;
createBotRegistration(token: string, registration: IBotRegistration, checkExistence?: boolean): Promise;
updateMessageEndpoint(token: string, botId: string, endpoint: string): Promise;
updateBotRegistration(token: string, botReg: IBotRegistration): Promise;
handleBotFrameworkError(e: any, apiName: string): void | undefined;
wrapResponse(e?: Error, response?: AxiosResponse): any;
wrapException(e: any, apiName: string, name?: string, potentialReason?: string, disPlayMessage?: string, isUserError?: boolean, helpLink?: string): Error;
}
export declare const teamsDevPortalClient: TeamsDevPortalClient;
//# sourceMappingURL=teamsDevPortalClient.d.ts.map