import type { Endpoint } from './channel'; import type { Remote } from './types'; import { Value } from './value'; export interface Handler { canHandle(value: unknown): boolean; serialize(value: unknown): unknown; deserialize(value: unknown): unknown; } declare const EXPOSED: unique symbol; declare const THROWN: unique symbol; declare const Symbols: { readonly exposed: typeof EXPOSED; readonly thrown: typeof THROWN; }; export declare function isExposed(obj: T): obj is ExposedObject; export declare type ExposedObject = T & { [Symbols.exposed]: string; }; export declare function withEndpoint(endpoint: Endpoint, fn: () => T): T; export declare function createExposed(value: T, endpoint: Endpoint): ExposedObject; export declare const Handlers: Map; export declare function toValue(endpoint: Endpoint, value: unknown): Value; export declare function fromValue(endpoint: Endpoint, value: Value): unknown; export declare function createEndpointProxy(endpoint: Endpoint, path: Array, target?: any, boundArgs?: unknown[]): Remote; export {}; //# sourceMappingURL=handlers.d.ts.map