// Globals present in every Burger runtime in Phase 1 (Contract C5). // Pair with `"lib": ["ES2023"]` and no DOM lib: fetch, URL, streams, etc. are // deliberately absent until Phase 2. interface BurgerConsole { log(...data: unknown[]): void; info(...data: unknown[]): void; warn(...data: unknown[]): void; error(...data: unknown[]): void; debug(...data: unknown[]): void; } declare var console: BurgerConsole; declare function setTimeout(handler: (...args: any[]) => void, timeoutMs?: number, ...args: any[]): number; declare function clearTimeout(id: number | undefined): void; declare function setInterval(handler: (...args: any[]) => void, timeoutMs?: number, ...args: any[]): number; declare function clearInterval(id: number | undefined): void; declare function queueMicrotask(callback: () => void): void; declare class TextEncoder { constructor(); readonly encoding: "utf-8"; encode(input?: string): Uint8Array; } declare class TextDecoder { constructor(label?: "utf-8" | "utf8", options?: { fatal?: boolean; ignoreBOM?: boolean }); readonly encoding: "utf-8"; decode(input?: Uint8Array | ArrayBuffer): string; } declare var performance: { now(): number }; interface BurgerCrypto { randomUUID(): string; getRandomValues(array: T): T; } declare var crypto: BurgerCrypto; declare var Buffer: import("burger:buffer").BufferConstructor; type Buffer = import("burger:buffer").Buffer; declare function structuredClone(value: T): T; interface BurgerProcessMemoryUsage { heapUsed: number; heapTotal: number; external: number; rss: number; } interface BurgerProcess { /** Per-app and mutable: writes and deletes never reach the OS environment. */ env: Record; readonly argv: string[]; readonly platform: "linux" | "darwin"; readonly arch: "arm64" | "x64"; exit(code: number): never; on(event: "uncaughtException", listener: (error: unknown) => void): void; on(event: "unhandledRejection", listener: (reason: unknown) => void): void; on(event: string, listener: (...args: unknown[]) => void): void; off(event: string, listener: (...args: any[]) => void): void; nextTick(callback: (...args: any[]) => void, ...args: any[]): void; memoryUsage(): BurgerProcessMemoryUsage; } declare var process: BurgerProcess;