/// <reference types="miniprogram-api-typings" />
/// <reference types="miniprogram-api-typings" />
/// <reference types="miniprogram-api-typings" />
import { ComponentRef, NgModuleRef, Type } from '@angular/core';
import type { AppOptions, MiniProgramComponentInstance, MiniProgramComponentOptions, MiniProgramPageOptions, NodePath } from 'angular-miniprogram/platform/type';
export declare class MiniProgramCoreFactory {
    MINIPROGRAM_GLOBAL: WechatMiniprogram.Wx;
    loadApp: <T>(app: T) => AppOptions;
    protected eventPrefixList: {
        listener: string;
        prefix: string;
    }[];
    protected getListenerEventMapping(prefix: string, name: string): string[];
    protected linkNgComponentWithPath(mpComponentInstance: MiniProgramComponentInstance, list: NodePath): void;
    /** 监听事件 */
    protected listenerEvent(): Record<string, Function>;
    protected pageStatus: {
        destroy: (this: MiniProgramComponentInstance) => void;
        attachView: (this: MiniProgramComponentInstance) => void;
        detachView: (this: MiniProgramComponentInstance) => void;
    };
    protected linkNgComponentWithPage(mpComponentInstance: MiniProgramComponentInstance, componentRef: ComponentRef<unknown>, ngModuleRef: NgModuleRef<unknown>): void;
    pageStartup: (module: Type<unknown>, component: Type<unknown>, pageOptions?: {
        useComponent: boolean;
    }) => string | void;
    protected addNgComponentLinkLogic(config: WechatMiniprogram.Component.Options<{}, {}, {}>): WechatMiniprogram.Component.Options<{}, {}, {}, {}, false>;
    componentRegistry: (component: Type<unknown>) => string;
    protected getPageOptions(component: Type<unknown> & MiniProgramPageOptions): WechatMiniprogram.Page.Options<{}, {}>;
    protected getComponentOptions<T extends boolean = false>(component: Type<unknown> & MiniProgramComponentOptions): WechatMiniprogram.Component.Options<{}, {}, {}, {}, T>;
}
export declare const MiniProgramCore: MiniProgramCoreFactory;


