export type TransportCleanup = () => void; export interface AbortSignalLike { readonly aborted: boolean; readonly reason?: unknown; addEventListener(type: 'abort', listener: () => void, options?: { once?: boolean; }): void; removeEventListener(type: 'abort', listener: () => void): void; } export interface TimerPlatform { setTimeout(handler: () => void, delayMs: number): unknown; clearTimeout(handle: unknown): void; now(): number; } export interface EventTargetLike { addEventListener?(type: string, listener: (event: unknown) => void): void; removeEventListener?(type: string, listener: (event: unknown) => void): void; on?(type: string, listener: (event: unknown) => void): void; off?(type: string, listener: (event: unknown) => void): void; removeListener?(type: string, listener: (event: unknown) => void): void; } export interface Utf8Codec { encode(value: string): Uint8Array; decode(value: ArrayBuffer | Uint8Array): string; } export declare class PortableAbortController { readonly signal: AbortSignalLike; abort(reason?: unknown): void; } export interface TransportOperationOptions { signal?: AbortSignalLike; timers?: TimerPlatform; timeoutMs?: number; abortError: (reason?: unknown) => unknown; timeoutError?: () => unknown; } export declare class CleanupStack { private cleanups; add(cleanup: TransportCleanup | undefined): TransportCleanup; flush(): void; } export declare function listen(target: EventTargetLike, type: string, listener: (event: unknown) => void): TransportCleanup; export declare function canListen(target: EventTargetLike): boolean; export declare function waitForTransportOperation(operation: PromiseLike, options: TransportOperationOptions): Promise; export declare function defaultTimerPlatform(): TimerPlatform; export declare function copyArrayBuffer(value: ArrayBuffer | Uint8Array): ArrayBuffer; export declare function encodeBase64(value: ArrayBuffer | Uint8Array): string; export declare function decodeBase64(value: string): ArrayBuffer; export declare function defaultUtf8Codec(): Utf8Codec; export declare function eventPayload(event: unknown): unknown; export declare function isRecord(value: unknown): value is Record; export declare function safeJsonParse(value: string): Record; export declare function safeJsonStringify(value: unknown): string; export declare function abortReason(signal: AbortSignalLike | undefined): unknown; export declare function onAbort(signal: AbortSignalLike | undefined, listener: () => void): TransportCleanup;