import type { JsValue } from "@tsonic/core/types.js"; declare global { class Error { name: string; message: string; stack?: string; constructor(message?: string); } interface Function { prototype: object; } interface CallableFunction extends Function { } interface NewableFunction extends Function { } interface IArguments { } interface RegExp { } interface ImportMeta { } interface String { } interface Number { } interface Boolean { } interface Object { constructor: Function; } interface SymbolConstructor { (description?: Exclude): symbol; readonly iterator: symbol; readonly asyncIterator: symbol; readonly hasInstance: symbol; readonly isConcatSpreadable: symbol; readonly species: symbol; readonly toPrimitive: symbol; readonly toStringTag: symbol; } interface Array { [n: number]: T; readonly length: number; [Symbol.iterator](): IterableIterator; } interface ReadonlyArray { readonly [n: number]: T; readonly length: number; [Symbol.iterator](): IterableIterator; } interface ArrayConstructor { new(size?: number): T[]; } interface Promise { then(onfulfilled?: | ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: | ((reason: JsValue) => TResult2 | PromiseLike) | undefined | null): Promise; catch(onrejected?: | ((reason: JsValue) => TResult | PromiseLike) | undefined | null): Promise; finally(onfinally?: (() => void) | undefined | null): Promise; } interface PromiseLike { then(onfulfilled?: | ((value: T) => TResult1 | PromiseLike) | undefined | null, onrejected?: | ((reason: JsValue) => TResult2 | PromiseLike) | undefined | null): PromiseLike; } interface PromiseConstructor { new(executor: ( resolve: (value: T | PromiseLike) => void, reject: (reason?: JsValue) => void ) => void): Promise; resolve(): Promise; resolve(value: T | PromiseLike): Promise; reject(reason?: JsValue): Promise; all(values: readonly (T | PromiseLike)[]): Promise; race(values: readonly (T | PromiseLike)[]): Promise; } interface Iterator { next(...args: [] | [TNext]): IteratorResult; return(value?: TReturn): IteratorResult; throw(e?: JsValue): IteratorResult; } interface IteratorResult { done: boolean; value: T | TReturn; } interface IteratorYieldResult { done: false; value: T; } interface IteratorReturnResult { done: true; value: TReturn; } interface Iterable { [Symbol.iterator](): Iterator; } interface IterableIterator extends Iterator { [Symbol.iterator](): IterableIterator; } interface AsyncIterator { next(...args: [] | [TNext]): Promise>; return(value?: TReturn | PromiseLike): Promise>; throw(e?: JsValue): Promise>; } interface AsyncIterable { [Symbol.asyncIterator](): AsyncIterator; } interface AsyncIterableIterator extends AsyncIterator { [Symbol.asyncIterator](): AsyncIterableIterator; } interface Generator extends Iterator { next(...args: [] | [TNext]): IteratorResult; return(value: TReturn): IteratorResult; throw(e: JsValue): IteratorResult; [Symbol.iterator](): Generator; } interface AsyncGenerator extends AsyncIterator { next(...args: [] | [TNext]): Promise>; return(value: TReturn | PromiseLike): Promise>; throw(e: JsValue): Promise>; [Symbol.asyncIterator](): AsyncGenerator; } interface TemplateStringsArray extends ReadonlyArray { readonly raw: readonly string[]; } type PropertyKey = string | number | symbol; type Partial = { [P in keyof T]?: T[P] }; type Required = { [P in keyof T]-?: T[P] }; type Readonly = { readonly [P in keyof T]: T[P] }; type Pick = { [P in K]: T[P] }; type Record = { [P in K]: T }; type Exclude = T extends U ? never : T; type Extract = T extends U ? T : never; type Omit = Pick>; type NonNullable = T extends null | undefined ? never : T; type Parameters JsValue | undefined> = T extends (...args: infer P) => JsValue | undefined ? P : never; type ConstructorParameters object> = T extends new (...args: infer P) => object ? P : never; type ReturnType JsValue | undefined> = T extends (...args: never[]) => infer R ? R : never; type InstanceType object> = T extends new (...args: never[]) => infer R ? R : never; type Awaited = T extends PromiseLike ? Awaited : T; type Uppercase = intrinsic; type Lowercase = intrinsic; type Capitalize = intrinsic; type Uncapitalize = intrinsic; const Symbol: SymbolConstructor; const Array: ArrayConstructor; const Promise: PromiseConstructor; } export {};