import { HDict } from 'haystack-core';
import { ResourceElement } from './ResourceElement';
/** Declare the global webpack functions/properties. */
declare global {
    function __webpack_init_sharing__(module: string): Promise<void>;
    const __webpack_share_scopes__: {
        default: string;
    };
}
/** A module federation remote container. */
interface RemoteContainer {
    get(module: string): Promise<unknown>;
    init(shareScope: unknown): Promise<void>;
}
/**
 * Loads the default exported module from some JS with the defined scope and module.
 *
 * @param scope The scope of the module to load.
 * @param module The name of the module to load.
 * @returns The loaded component.
 */
export declare function loadDefault<DefaultType>(scope: string, module: string): () => Promise<{
    default: DefaultType;
}>;
/**
 * Asynchronously load the dynamic resource at runtime and wait for it to load.
 *
 * @param url The URL to load.
 * @returns A promise that's resolved once the resource has loaded.
 */
export declare function loadDynamicResource(scope: string, url: string): Promise<ResourceElement | RemoteContainer>;
export declare function loadDynamicResources(scope: string, urls: string[]): Promise<(ResourceElement | RemoteContainer)[]>;
/**
 * Returns the pod name.
 *
 * @param def The def dict.
 * @returns The name of the pod the resource was loaded from.
 */
export declare function getPodName(def: HDict): string;
/**
 * Returns the remote entry point for an app.
 *
 * @param app The FIN app to get the remote entry point from.
 * @param ui The FIN app view to load the remote entry point from.
 * @param path The remote path to load. Defaults to `remoteEntry.js`.
 * @returns The remote entry point.
 */
export declare function getRemoteEntry(app: HDict, ui?: HDict, path?: string): string;
/**
 * Returns properties with values that can be rendered nicely as strings.
 * All objects and functions are excluded. All keys are made lowercase.
 *
 * @param props The properties to convert.
 * @returns The properties as strings.
 */
export declare function toStringProps(props: Record<string, unknown>): Record<string, string>;
export {};
