declare interface Fn { (...arg: T[]): R } declare interface PromiseFn { (...arg: T[]): Promise } declare type RefType = T | null declare interface PageParam { pageSize?: number pageNo?: number } declare interface PageResult { list: T[] total: number } declare type LabelValueOptions = { label: string value: any [key: string]: string | number | boolean }[] declare type EmitType = (event: string, ...args: any[]) => void declare type TargetContext = '_self' | '_blank' declare interface ComponentElRef { $el: T } declare type ComponentRef = ComponentElRef | null declare type ElRef = Nullable