import type { IApp } from '@visactor/vrender-core';
import { type TVRenderBrowserAppEntryOptions } from './browser';
import { type TVRenderMiniAppEntryOptions } from './miniapp';
import { type TVRenderNodeAppEntryOptions } from './node';
import { type TVRenderSharedAppHandle as TSharedAppHandle, type TVRenderSharedAppKey as TSharedAppKey } from './shared-registry';
export type TVRenderSharedAppEnv = 'browser' | 'node' | 'taro' | 'feishu' | 'tt' | 'wx' | 'lynx' | 'harmony';
export type TVRenderSharedAppKey = TSharedAppKey;
type TVRenderSharedAppEntryOptionsMap = {
    browser: TVRenderBrowserAppEntryOptions;
    node: TVRenderNodeAppEntryOptions;
    taro: TVRenderMiniAppEntryOptions<'taro'>;
    feishu: TVRenderMiniAppEntryOptions<'feishu'>;
    tt: TVRenderMiniAppEntryOptions<'tt'>;
    wx: TVRenderMiniAppEntryOptions<'wx'>;
    lynx: TVRenderMiniAppEntryOptions<'lynx'>;
    harmony: TVRenderMiniAppEntryOptions<'harmony'>;
};
export type TVRenderSharedAppOptions<TEnv extends TVRenderSharedAppEnv = TVRenderSharedAppEnv> = TVRenderSharedAppEntryOptionsMap[TEnv] & {
    env: TEnv;
    key?: TVRenderSharedAppKey;
};
export type TVRenderSharedAppHandle<TEnv extends TVRenderSharedAppEnv = TVRenderSharedAppEnv> = TSharedAppHandle<TEnv>;
export declare function acquireSharedVRenderApp<TEnv extends TVRenderSharedAppEnv>(options: TVRenderSharedAppOptions<TEnv>): TVRenderSharedAppHandle<TEnv>;
export declare function getSharedVRenderApp<TEnv extends TVRenderSharedAppEnv>(env: TEnv, key?: TVRenderSharedAppKey): IApp | null;
export declare function releaseSharedVRenderApp<TEnv extends TVRenderSharedAppEnv>(env: TEnv, key?: TVRenderSharedAppKey): void;
export {};
