import { Mutable } from '@milaboratories/helpers'; import { NavigationState, BlockOutputsBase, BlockStateV3, PlatformaV3, ValueWithUTag, AuthorMarker, PlatformaExtended, InferPluginUiEntries, UiServices as AllUiServices } from '@platforma-sdk/model'; import { OutputValues, OutputErrors, AppSettings } from '../types'; import { PluginAccess } from '../composition/usePlugin'; export declare const patchPoolingDelay = 150; export declare const createNextAuthorMarker: (marker: AuthorMarker | undefined) => AuthorMarker; /** * Creates an application instance with reactive state management, outputs, and methods for state updates and navigation. * * @template Args - The type of arguments used in the application. * @template Outputs - The type of block outputs extending `BlockOutputsBase`. * @template Data - The type of the block data. * @template Href - The type of navigation href, defaulting to a string starting with `/`. * * @param state - Initial state of the application, including args, outputs, UI state, and navigation state. * @param platforma - A platform interface for interacting with block states. * @param settings - Application settings, such as debug flags. * * @returns A reactive application object with methods, getters, and state. */ export declare function createAppV3 = Record, UiServices extends Partial = Partial>(state: ValueWithUTag>, platforma: PlatformaExtended>, settings: AppSettings): { app: { error: string; model: { data: import('vue').UnwrapRef; outputs: import('vue').UnwrapRef>; outputErrors: import('vue').UnwrapRef>; }; closedRef: boolean; snapshot: { outputs: Partial>; blockStorage: unknown; navigationState: NavigationState; }; plugins: import('vue').UnwrapRef>; services: import('vue').UnwrapRef>; queryParams: import('../types').ParseQuery; href: Href; hasErrors: boolean; } & { cloneData: () => Data; cloneNavigationState: () => Mutable>; /** * Updates the UI state by applying a callback. * * @param cb - Callback to modify the current UI state. * @returns A promise resolving after the update is applied. * @todo Make it mutable since there is already an initial one */ updateData(cb: (data: Data) => Data): Promise; /** * Navigates to a specific href by updating the navigation state. * * @param href - The target href to navigate to. * @returns A promise resolving after the navigation state is updated. */ navigateTo(href: Href): Promise; allSettled(): Promise; }; pluginAccess: PluginAccess; }; export type BaseAppV3 = Record, UiServices extends Partial = Partial> = ReturnType>["app"]; //# sourceMappingURL=createAppV3.d.ts.map