declare interface Fn { (...arg: T[]): R; } declare interface PromiseFn { (...arg: T[]): Promise; } declare type RefType = T | null; declare type LabelValueOptions = { label: string; value: any; }[]; 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; declare type ForDataType = { [P in T]?: ForDataType; }; declare type AnyFunction = (...args: any[]) => T;