import { Option, PackageInstanceOption, PrePackageInstance } from '@foxpage/foxpage-shared';
import { FPPackage, Package, PackageInstallOption } from '@foxpage/foxpage-types';
/**
 * package
 *
 * @export
 * @interface Package
 */
export declare class PackageInstance extends PrePackageInstance implements Package {
    /**
     * package status
     *
     * @type {('preInstall' | 'installing' | 'installed' | 'fail')}
     */
    status: 'preInstall' | 'installing' | 'installed' | 'fail';
    /**
     * package available status
     *
     * @type {boolean}
     */
    available: boolean;
    filePath?: string;
    private _exported?;
    private _loaded;
    private reporter;
    constructor(info: FPPackage, opt?: PackageInstanceOption);
    get exported(): any;
    get componentFactory(): any;
    /**
     * install package
     *
     * @param {PackageInstallOption} opt
     */
    install(opt?: PackageInstallOption): Promise<void>;
    private fetchCode;
    protected inspectPackage(code: string): Promise<Option<any>>;
    private fetch;
    private retry;
    processJSCode(jsContent: string): Promise<void>;
}
