import { Guest, NodeWorker, Target, WorkerLike } from './types'; type RuntimeEnvironment = "browser" | "worker" | "node" | "bun"; export declare function getRuntimeEnvironment(): RuntimeEnvironment; export declare function isBrowserEnv(): boolean; /** * check if run in a webworker * * @returns boolean */ export declare function isWorker(): boolean; /** * check if run in a Node.js environment * * @returns boolean */ export declare function isNodeEnv(): boolean; export declare function isBunEnv(): boolean; export declare function isServerEnv(): boolean; /** * check if run in an iframe * * @returns boolean */ export declare function isIframe(): boolean; /** * we cannot send functions through postMessage * extract the path to all functions in the schema * * @param obj */ export declare function extractMethods(obj: any): Record any>; /** * convert the url into an origin (remove paths) * * @param url */ export declare function getOriginFromURL(url: string | null): string | null; export declare function resolveTargetOrigin(origin?: string | null): string; export declare function get(obj: any, path: string | Array, defaultValue?: any): any; export declare function set(obj: any, path: string | (string | number)[], value: any): any; export declare function generateId(length?: number): string; /** * Get the appropriate target host for messaging based on the current environment * @returns The messaging target for the current environment */ export declare function getTargetHost(): any; /** * Send a message to a target, handling different environments (iframe, web worker, node worker) * @param target The target to send the message to * @param message The message to send * @param origin Optional origin for iframe communication * @param transferables Optional transferables for postMessage */ export declare function postMessageToTarget(target: Target, message: any, origin?: string | null, transferables?: Transferable[]): void; export declare function isNodeWorker(guest: Guest | Target): guest is NodeWorker; export declare function isWorkerLike(guest: Guest): guest is WorkerLike; export declare function addEventListener(target: Target, event: string, handler: EventListenerOrEventListenerObject): void; export declare function removeEventListener(target: Target, event: string, handler: EventListenerOrEventListenerObject): void; /** * Normalize message event data across Web and Node.js environments * In web, data is in event.data * In Node.js, the event itself contains the data */ export declare function getEventData(event: any): any; export {};