import { Type } from "../core/compilation/types"; export declare type Mutable = { -readonly [P in keyof T]: T[P]; }; export declare function asMutable(obj: T): Mutable; export declare function isInstance(ctor: new (...args: any[]) => T): (x: any) => x is T; export declare function assert(condition: any, message?: string): asserts condition; export declare function assertFalse(message?: string): never; export declare function assertNever(x: never): never; export declare function createMethodMixin(mix: TargetType[MethodName]): (targetProto: TargetType, name: MethodName) => void; export declare type Constructor = new (...args: any[]) => T; export declare type Overwrite = Pick> & T2; export declare type DiscriminateUnion = T extends Record ? T : never; export declare type MapDiscriminatedUnion, K extends keyof T> = { [V in T[K]]: DiscriminateUnion; }; export declare function htmlDecoratedOperator(operator: string, cssClass: string): string; export declare function htmlDecoratedKeyword(keyword: string): string; export declare function htmlDecoratedType(type: string): string; export declare function htmlDecoratedName(name: string, type?: Type): string; export declare function htmlDecoratedValue(value: string): string; export declare function htmlDecoratedObject(value: string): string; export declare function escapeString(text: string): string; export declare function unescapeString(text: string): string; export declare class CPPRandom { private seed; constructor(seed?: number); setRandomSeed(newSeed: number): void; random(min?: number, max?: number): number; randomInteger(min: number, max: number): number; seededRandom(seed: number, min?: number, max?: number): number; }