export type Sealable = { toMutable(): T; [Sealant.SealedType]: object; }; export type Sealed = { [Sealant.CreateCopy]?: () => T; }; export declare abstract class Sealant { static readonly SealedType: unique symbol; static readonly CreateCopy: unique symbol; static seal>(collection: T, sealedType: object, typeName: string, member: any): T; static toMutable>(collection: T): T; static error(collection: Sealed): Error; }