export interface SyncFetchCustomOptions {
    timeout?: number;
    /**
     * @internal Test-only override for the worker script path. Allows tests to
     * substitute a fixture worker that intentionally dies before notifying, so
     * the in-worker death watchdogs (process.on('uncaughtException') /
     * process.on('exit')) and the signalBuffer-driven timeout error can be
     * exercised end-to-end.
     */
    _workerPath?: string;
}
export interface SyncFetchResponse {
    status: number;
    statusText: string;
    headers: Record<string, string>;
    body: unknown;
    ok: boolean;
}
export declare function syncFetch(url: string, options?: RequestInit, customOptions?: SyncFetchCustomOptions): SyncFetchResponse;
/**
 * Wake-reason values written to `signalArray[0]` by sync-fetch-worker.mjs.
 *
 * @internal Exported for tests.
 */
export declare const SIGNAL_WAITING = 0;
/** @internal */
export declare const SIGNAL_POSTMESSAGE = 1;
/** @internal */
export declare const SIGNAL_DIED = 2;
/**
 * Build the diagnostic Error thrown when the worker fails to deliver a message
 * before the main-thread timeout. When the worker's death-watchdog fired
 * (`wakeReason === SIGNAL_DIED`) the exit code is folded into the message so
 * the failure is debuggable instead of opaque. Otherwise the wait simply
 * timed out and we report the plain timeout.
 *
 * @internal Exported for tests.
 */
export declare function buildTimeoutError(args: {
    mainThreadTimeout: number;
    wakeReason: number;
    exitCode: number;
}): Error;
