import { HarmonyOS_ArkTS } from '@tarojs/plugin-platform-harmony-ets/dist';
import { IPluginContext, TConfig } from '@tarojs/service';
import { IHarmonyConfig } from '@tarojs/taro/types/compile';

declare class Harmony extends HarmonyOS_ArkTS {
    option: IOptions;
    platform: string;
    runtimePath: string;
    useETS: boolean;
    useJSON5: boolean;
    get context(): IPluginContext;
    constructor(ctx: IPluginContext, config: TConfig, option: IOptions);
    get harmonyPluginPath(): string;
    get harmonyCppPluginPath(): string;
    get apiLibrary(): string;
    get componentLibrary(): string;
    get runtimeLibrary(): string;
    get runtimeFrameworkLibrary(): string;
    get runtimeFrameworkReconciler(): string;
    modifyPageConfig(): void;
    updateModulePackage(outputRoot: string, ohPackage?: Exclude<IHarmonyConfig['ohPackage'], undefined>, ohpm?: string): void;
}

interface IOptions {
    useConfigName?: string;
    /** @default "local" */
    useChoreLibrary?: 'local' | 'remote' | false | string;
}
declare const _default: (ctx: IPluginContext, options?: IOptions) => void;

export { Harmony as HarmonyCPP, _default as default };
export type { IOptions };
