import { VnmfPlatformBase, IPluginContext } from "@vnxjs/service";
import { RecursiveTemplate } from "@vnxjs/shared/dist/template";
interface TemplateOptions {
    flattenViewLevel?: number;
    flattenCoverLevel?: number;
    flattenTextLevel?: number;
}
declare class Template extends RecursiveTemplate {
    supportXS: boolean;
    Adapter: {
        if: string;
        else: string;
        elseif: string;
        for: string;
        forItem: string;
        forIndex: string;
        key: string;
        xs: string;
        type: string;
    };
    flattenViewLevel: number;
    flattenCoverLevel: number;
    flattenTextLevel: number;
    legacyMiniComponents: {
        [key: string]: Record<string, string>;
    };
    constructor(options?: TemplateOptions);
    createMiniComponents(components: any): any;
    buildXsTemplate(): string;
    dataKeymap(keymap: string): string;
    getAttrValue(value: string, key: string, nodeName: string): string;
    buildFlattenNodeAttributes(nodeName: string): string;
    buildFlattenView: (level?: number) => string;
    buildFlattenCover: (level?: number) => string;
    buildFlattenText: (level?: number) => string;
    modifyLoopBody: (child: string, nodeName: string) => string;
    modifyLoopContainer: (children: string, nodeName: string) => string;
    modifyTemplateResult: (res: string, nodeName: string) => string;
    buildXSTmpExtra(): string;
}
declare class Swan extends VnmfPlatformBase {
    platform: string;
    globalObject: string;
    runtimePath: string;
    vnmfComponentsPath: string;
    fileType: {
        templ: string;
        style: string;
        config: string;
        script: string;
        xs: string;
    };
    template: Template;
    /**
     * 1. setupTransaction - init
     * 2. setup
     * 3. setupTransaction - close
     * 4. buildTransaction - init
     * 5. build
     * 6. buildTransaction - close
     */
    constructor(ctx: any, config: any);
    /**
     * Add component or modify properties
     */
    modifyComponents(): void;
}
declare const _default: (ctx: IPluginContext) => void;
export { _default as default, Swan };
