///
import type { Any, EmptyObject } from '@web-io/common/es/types';
declare type IPageMethods = Record Any>;
/**
* Page 实现的接口对象.
* 扩展`tinyapp.PageOptions`支持methods泛型, see `mini-types/types/page.d.ts`.
*
* @template D Type of page data.
* @template ExtendThis Type of extended page instance, 可用于扩展page methods或者内部属性.
*/
declare type PageOptions, ExtendThis = EmptyObject> = tinyapp.IPageOptionsMethods & {
/**
* 初始数据或返回初始化数据的函数, 为对象时所有页面共享。
*/
data?: D;
/**
* 事件处理函数集合。
*/
events?: tinyapp.IPageEvents & ThisType & ExtendThis>;
} & ExtendThis & ThisType & ExtendThis>;
/**
* @template D Type of page data.
* @template ExtendThis Type of extended page instance, 可用于扩展page methods或者内部属性.
*/
declare type ICreatePageOptions = PageOptions & {
/**
* 将全局对象的值 map 到当前页面的 data.
*/
mapGlobalDataToData?: Record;
};
/**
* miniu data createPage data泛型参数支持.
*
* @template D Type of page data.
* @template ExtendThis Type of extended page instance, 可用于扩展page methods或者内部属性. 传递给createPage的选项除了已定义选项外其余选项会扩展到page instance上, 组件则不会.
* @template G Type of map global data to data, 全局数据映射到页面上为只读, 由于全局数据通过`setGlobalData`修改,所以将其设置为partial.
* @param options Page options.
* @returns Page instance.
*/
declare function createPage, ExtendThis = EmptyObject, G = EmptyObject>(options: ICreatePageOptions>, ExtendThis>): PageOptions>, ExtendThis>;
export default createPage;
export type { IPageMethods, PageOptions, ICreatePageOptions };