import { HDict, HNamespace } from 'haystack-core';
import { App, AppStore } from '..';
import { RemoteAppView } from './RemoteAppView';
/**
 * An application that loads remotely as a micro frontend application.
 *
 * All behavior and plugin points are defined using haystack defs.
 */
export declare class RemoteApp implements App {
    readonly app: HDict;
    readonly views: Record<string, RemoteAppView>;
    store?: AppStore;
    messages?: string[];
    /**
     * Used by the `isRemoteApp` type guard check.
     */
    readonly _symbol: symbol;
    constructor(app: HDict, namespace: HNamespace);
    private loadMessages;
    private loadAppViews;
    get id(): string;
    get remoteStoreUri(): string;
    /**
     * Asynchronously ensure the store is loaded if one is available.
     */
    loadStore(): Promise<void>;
    /**
     * Returns a list of apps.
     *
     * @param namespace The namespace to query for apps.
     * @returns An array of apps.
     */
    static makeApps(namespace: HNamespace): App[];
}
/**
 * Type guard check for checking whether an app is a remote app or not.
 *
 * @param app The app.
 * @returns True if the app is a remote app.
 */
export declare function isRemoteApp(app: unknown): app is RemoteApp;
