UNPKG

@adpt/core

Version:
41 lines 1.97 kB
import { AdaptElement, AdaptMountedElement, ElementPredicate, GenericInstance, GenericInstanceMethods, KeyPath } from "./jsx"; export interface Handle<I extends object = GenericInstance> extends Readonly<Partial<BuildId>> { readonly associated: boolean; readonly target: AdaptElement | null | undefined; readonly origTarget: AdaptElement | null | undefined; readonly mountedOrig: AdaptMountedElement | null | undefined; readonly name?: string; nextMounted(pred?: ElementPredicate): AdaptMountedElement | null | undefined; replaceTarget(child: AdaptElement | null, buildId: BuildId): void; } /** * Extracts the instance type associated with a {@link Handle}. * @public */ export declare type HandleInstanceType<H extends Handle> = H extends Handle<infer I> ? I : never; export declare function isHandle<I extends object = GenericInstance>(val: unknown): val is Handle<I>; export interface HandleInternal<I extends object = GenericInstance> extends Handle<I> { unresolvedTarget?: KeyPath | null; associate(el: AdaptElement): void; targetReplaced(buildId: BuildId): boolean; } export interface BuildId { buildNum: number; } export declare function isHandleInternal<I extends object = GenericInstance>(val: unknown): val is HandleInternal<I>; export declare function getInternalHandle<I extends object = GenericInstance>(el: AdaptElement): HandleInternal<I>; export declare const handleSignature: string; export interface HandleObj { __adaptIsHandle: string; name?: string; target: string[] | null; urn: string; } export declare function isHandleObj(val: object): val is HandleObj; /** * User-facing API for creating a Handle * @param name - Name to associate with the handle for debugging/display purposes */ export declare function handle<I extends object = GenericInstance>(name?: string): Handle<I & GenericInstanceMethods>; export declare const handleUrn: string; //# sourceMappingURL=handle.d.ts.map