import { SYNCULAR_CLIENT_PACKAGE_NAME, SYNCULAR_CLIENT_PACKAGE_VERSION, } from './wasm-bindings/runtime-contract.js';
import { SYNCULAR_WORKER_PROTOCOL_VERSION } from './worker-protocol.js';
export { SYNCULAR_CORE_RUNTIME_FEATURES, SYNCULAR_FULL_RUNTIME_FEATURES, SYNCULAR_WASM_ARTIFACT_CATALOG_FILE, SYNCULAR_WASM_ARTIFACT_FILE, SYNCULAR_WASM_BINARY_FILE, SYNCULAR_WASM_GLUE_FILE, SYNCULAR_WASM_OUT_NAME, } from './wasm-bindings/runtime-contract.js';
export { SYNCULAR_WORKER_PROTOCOL_VERSION } from './worker-protocol.js';
export const SYNCULAR_PACKAGE_NAME = SYNCULAR_CLIENT_PACKAGE_NAME;
export const SYNCULAR_PACKAGE_VERSION = SYNCULAR_CLIENT_PACKAGE_VERSION;
export function createSyncularRuntimeInfo(options) {
    return {
        packageName: SYNCULAR_PACKAGE_NAME,
        packageVersion: SYNCULAR_PACKAGE_VERSION,
        workerProtocolVersion: SYNCULAR_WORKER_PROTOCOL_VERSION,
        storage: options.storage,
        workerUrl: options.workerUrl == null ? undefined : href(options.workerUrl),
        wasmGlueUrl: href(options.wasmGlueUrl),
        wasmUrl: href(options.wasmUrl),
        rust: options.rust ?? undefined,
    };
}
function href(value) {
    if (value instanceof Request)
        return value.url;
    return value instanceof URL ? value.href : value;
}
//# sourceMappingURL=runtime-contract.js.map