import type { FC } from '../jsx'; import { type AnyFn } from '../util'; import type { ComponentHost } from './component'; export declare const REF: unique symbol; export interface Ref> { value?: T; } export type RefValue | undefined> = T extends Ref ? R : never; export declare function ref(): T extends Node ? Ref : T extends FC ? Ref[0]['ref']>> : never; export declare function isRef>(v: object): v is Ref; export type RefFn = (el: T) => void; /** 用于给编译器使用的 set ref 函数 */ export declare function setRefForComponent(target: ComponentHost, ref: Ref | RefFn, el: ComponentHost | Node): void;