/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * Helper function for class generation.
 *
 * This factory does not offer TypeScript types for the resulting class.  You must cast separately.
 */
export declare function GeneratedClass(options: GeneratedClass.Options): new (...args: unknown[]) => {};
export declare namespace GeneratedClass {
    /**
     * These fields control class behavior.
     */
    interface Mixin {
        /**
         * A function that performs initialization after instantiation.  "this" will be the object and arguments are the
         * arguments to the constructor.
         */
        initialize?: (...args: any[]) => void;
        /**
         * Instance properties.
         */
        instanceProperties?: object;
        /**
         * Instance properties defined using descriptors.
         */
        instanceDescriptors?: PropertyDescriptorMap;
        /**
         * Static properties.
         */
        staticProperties?: object;
        /**
         * Static properties defined using descriptors.
         */
        staticDescriptors?: PropertyDescriptorMap;
    }
    /**
     * Input to {@link GeneratedClass}.
     */
    interface Options extends Mixin {
        /**
         * The name of the class.
         */
        name?: string;
        /**
         * The base class, if any.
         */
        base?: new (...args: any) => any;
        /**
         * A preprocessor for arguments.  Derivatives may use this to transform arguments prior to call to super() and
         * initialize().
         */
        beforeSuper?: (...args: any[]) => any[];
        /**
         * Other {@link Mixin} objects in addition to this one.
         */
        mixins?: Mixin[];
    }
}
//# sourceMappingURL=GeneratedClass.d.ts.map