import type { ComponentClass } from 'preact'; export declare const noop: (...args: unknown[]) => unknown; export declare function isDirectOrDeepEqual(a: any, b: any): boolean; export declare function isEmptyObject(obj?: object): obj is Record; export declare function isSdkVersionGt(major: number, minor: number): boolean; export declare function pick(obj: T, keys: Iterable): Pick; export declare function maybePromise(value: unknown): value is Promise; export declare function getDisplayName(type: ComponentClass): string; export declare function hook(object: T, key: K, fn: Required[K] extends (...args: infer P) => infer Q ? ((old?: T[K], ...args: P) => Q) : never): void; /** * Runs `fn` with Preact's after-paint scheduler switched to synchronous. * * Preact 11 defers passive-effect cleanups of unmounted components to that * flush. Page destroy is the one path with no later turn to run them in: * `callDestroyLifetimeFun` returns and native tears the runtime down, so a * deferred cleanup would never run at all. */ export declare function withSyncEffectFlush(fn: () => T): T; export declare const lynxQueueMicrotask: typeof lynx.queueMicrotask;