import MainBridge from '../bridge/platform/web';
import { ServerApiMap, TransferApi, ParamType } from '../baseSdk/api';
import { ApiParam } from '../bridge/types';
import { StorageStruct } from '../../types/storage';
import { BaseAccountInfo, AppInfoList, AppType } from '../../types/commonData';
import { Env } from '../../types/account';
type ServerBack<K extends keyof ServerApiMap = keyof ServerApiMap> = Promise<ApiParam<ServerApiMap, K, 'suc'>>;
export default class BaseBridgeManager {
    constructor();
    mainBridge: MainBridge<ServerApiMap, {}>;
    chooseFolder(): Promise<string>;
    openProject(param: {
        compilePath: string;
        appType: AppType;
    }): Promise<void>;
    checkProject(props: {
        compilePath: string;
        appType?: AppType;
    }): Promise<void>;
    getSystemPathInfo(props: {
        path?: string;
    }): ServerBack<TransferApi.getSystemPathInfo>;
    openFile(dir: string): void;
    getUUID(): ServerBack<TransferApi.getUUID>;
    accountInfo(): ServerBack<TransferApi.accountInfo>;
    accountLogin(environment: Env): ServerBack<TransferApi.accountLogin>;
    accountLogout(): Promise<void>;
    accountTenant(): ServerBack<TransferApi.accountTenant>;
    accountTenantSwitch(account: BaseAccountInfo): ServerBack<TransferApi.accountTenantSwitch>;
    openPage(url: string): Promise<void>;
    getRecentProject(): Promise<AppInfoList>;
    deleteProjects(props: {
        compilePaths: string[];
        appType: AppType;
    }): Promise<string[]>;
    templateList(appType: AppType): ServerBack<TransferApi.templateList>;
    createProject(props: {
        targetPath: string;
        templateName: string;
        projectName: string;
        appID: string;
        blockTypeId?: string;
    }): Promise<string>;
    getHelpDocUrl(): ServerBack<TransferApi.helpDocUrl>;
    feedBack(): ServerBack<TransferApi.feedback>;
    featureGating(keys: string[]): ServerBack<TransferApi.featureGating>;
    enableBlock(): ServerBack<TransferApi.enableBlock>;
    enableH5Block(): ServerBack<TransferApi.enableH5Block>;
    eventTracker(name: string, tags?: object): void;
    eventTrackV2(name: string, tags?: Record<string, string | number>, traceId?: string, timingName?: string): void;
    reportResult(name: string, result: 'success' | 'fail', tags?: Record<string, string | number>, traceId?: string): void;
    getSettings(): ServerBack<TransferApi.getSettings>;
    setSettings(params: Partial<StorageStruct['settings']>): Promise<void>;
    getRoutePath(): ServerBack<TransferApi.getRoutePath>;
    getClipboardData(): ServerBack<TransferApi.getClipboardData>;
    reportIssue(formData: ParamType<TransferApi.reportIssue>): ServerBack<TransferApi.reportIssue>;
}
export {};
