import { UniElement } from './index'
import { UniElementType, UniElementStyles } from './UniElementType'
import { UniViewElement } from './index'
import { UniTextElement } from './index'
import { UniImageElement } from './index'
import { UniRichTextNativeElement } from './index'
import { UniNativeView } from './UniNativeView'
import { UniNativeTextView } from './UniNativeTextView'
import { UniNativeImageView } from './UniNativeImageView'
import { UniNativeScrollView, UniNativeScrollViewOptions } from './UniNativeScrollView'
import { UniNativeCustomView } from './UniNativeCustomView'
import { UniNativeRichTextNativeView } from './UniNativeRichTextNativelView'
import { UniTextLayout } from './index'
import { UniText } from './index'
declare global {
/**
* 页面对象
*/
interface UniPage {
/**
* 以下属性在DOM层封装
* - Android平台:kt层封装
* - iOS平台:c层实现
* - 鸿蒙平台:c层实现
*/
/**
* 获取当前页面是否处于可复用状态,
* 仅内部使用(不公开给开发者),用于解决image组件在复用场景时会闪以下复用前的图片
* 当页面中的list等复用组件处于复用状态时,将会将此状态设置为true,处于非复用状态时设置为false
* iamge组件在更新src时如果当前页面处于isRecycling状态,需要先同步清空UI显示内容,避免显示复用前的图片
*/
isRecycling(): boolean
/**
* 设置当前页面是否处于可复用状态
*/
setRecycling(value: boolean): void
/**
* 创建UniElement
* 仅内部使用,c层实现,在线程1中创建
* @param type - UniElementType类型
* @param flatten - Element是否被拍平(扁平化)
* true表示可拍平,false表示不可拍平,默认值false
* @param style - 同时设置多个CSS样式
* 注意:在Android平台仅支持排版CSS,为了各平台统一,编译生成的代码应该只设置排版相关CSS
*/
// 废弃通过类型创建UniElement的API,改用下面创建指定类型的UniElement
// createElement(type: UniElementType, flatten: boolean): UniElement
// createElement(type: UniElementType, flatten: boolean, style?: UniElementStyles | null): UniElement
/**
* 创建view组件的Element
* @internal
*/
createViewElement(flatten: boolean, style?: UniElementStyles | null): UniViewElement
/**
* 创建text组件的Element
* @internal
*/
createTextElement(flatten: boolean, style?: UniElementStyles | null): UniTextElement
/**
* 创建image组件的Element
* @internal
*/
createImageElement(flatten: boolean, style?: UniElementStyles | null): UniImageElement
/**
* 创建scroll-view组件的Element
* @internal
*/
createScrollViewElement(): UniScrollViewElement
/**
* 创建nested-scroll-header组件的Element
* @internal
*/
createNestedScrollHeaderElement(): UniNestedScrollHeaderElement
/**
* 创建nested-scroll-body组件的Element
* @internal
*/
createNestedScrollBodyElement(): UniNestedScrollBodyElement
/**
* 创建native-viewe组件的Element
* @internal
*/
createNativeViewElement(): UniNativeViewElement
/**
* 创建rich-text-native组件的Element
* @internal
*/
createRichTextNativeElement(): UniRichTextNativeElement
/**
* 创建注释节点的Element
* @internal
*/
createComment(data: string): UniElement
/**
* 目前该API仅限特定场景使用,比如
* 123
* 123
* @internal
*/
createTextNode(data?: string | null): UniText
/**
* Android平台Kotlin层实现
* 用于Android平台线程2中创建
* @internal
*/
createElement(type: UniElementType): UniElement
/**
* Android平台Kotlin层实现
* 用于Android平台线程1中创建UniTextLayout
* @internal
*/
createTextLayout(id?: number | null): UniTextLayout
/**
* 增加TextLayout内部计数器,解决非text节点不需要创建TextLayout时能同时增加计数,确保内部id与UniTextElement的内部id一致
* @internal
*/
increaseTextLayoutCounter(count: number): void
/**
* 创建原生View(view)
* @param flatten 原生View是否被拍平(扁平化),true表示可拍平,false表示不可拍平,默认值false
* @internal
*/
createNativeView(flatten: boolean): UniNativeView
/**
* 创建原生文本View(text)
* @internal
*/
createNativeTextView(flatten: boolean): UniNativeTextView
/**
* 创建原生图片View(image)
* @internal
*/
createNativeImageView(flatten: boolean): UniNativeImageView
/**
* 创建原生滚动View(scroll-view)
* @internal
*/
createNativeScrollView(options: UniNativeScrollViewOptions): UniNativeScrollView
/**
* 创建原生自定义View(native-view)
* @internal
*/
createNativeCustomView(): UniNativeCustomView
/**
* 创建原生富文本View(rich-text-native)
*/
createNativeRichTextNativeView(): UniNativeRichTextNativeView
// 废弃通过类型创建NativeView的API,改用上面创建指定类型的原生View
// createNativeView(type: UniNativeViewType, flatten: boolean): UniNativeBaseView
// createNativeView(type: UniNativeViewType, flatten: boolean): T
/**
* 增加原生view内部计数器,解决一些虚拟节点只需要创建UniElement,不需要创建UniNativeView的场景
* @param count - 增加计数器值,默认值为1
* @internal
*/
increaseNativeViewCounter(count: number): void
/**
* 通过内部NodeID查找节点
* @param id
* 内部Node id
* @internal
*/
getNodeById(id: number): UniElement | null
/**
* 通过id属性查找元素
* @param id
* 元素的id值
* @internal
*/
getElementById(id: string): UniElement | null
/**
* 定义CSS变量
* @param key - css变量名称
* @param value - css变量值,空字符串则表示移除变量定义
* @internal
*/
defineStyleVariable(key: string, value: string): void
/**
* 获取DOM数据
* @return {UTSJSONObject} 对象中包含以下字段数据
* children - Array[UTSJSONObject]类型,如果没有子,则此数据不存在
* attributes - UTSJSONObject类型,所有的属性列表:key为字符串类型属性名称,value为字符串类型属性值
* 属性名称存在中划线时,保留中划线
* styles - UTSJSONObject类型,所有的样式列表:key为字符串类型样式名称,value为字符串类型样式值
* 样式名称存在中划线时,保留中划线
* computedLayouts - UTSJSONObject类型,包括left/top/width/height,单位为逻辑像素值
* vueComponentId - string类型,vue组件标识,仅蒸汽模式存在
* vueComponentName - string类型,vue组件名称,仅蒸汽模式存在
* VueComponentPath - string类型,vue组件路径,仅蒸汽模式存在
* @internal
*/
getDom(): UTSJSONObject
}
}