interface Binding {
    object: any;
    prop: PropertyKey;
}
export declare class Utils {
    static get(obj: any, sym: symbol): any;
    static set(obj: any, sym: symbol, value: any): any;
    static decorate(target: any, decorator: Function): void;
    static acquireDecorationTable(target: any): any;
    static decorationOf(target: any): any;
    private static hookArrayItem;
    private static hookArrayMethod;
    static freezeArray(arr: any[], binding: Binding): void;
    static freezeSet<T>(obj?: Set<T>): void;
    static freezeMap<K, V>(obj?: Map<K, V>): void;
    static replicate(source: any, target: any): any;
    static replicateProp(source: any, target: any, prop: PropertyKey): void;
}
export declare function forbidden(...args: any[]): never;
export declare function rethrow(error: any): never;
export {};
