/**
 * A decorator to mix multiple classes into a single class.
 * @param constructors - The constructors of the classes to be mixed in.
 * @returns A class decorator that mixes the provided classes into the target class.
 * @example
 * class A {
 *   methodA() {
 *     console.log('A');
 *   }
 * }
 *
 * class B {
 *   methodB() {
 *     console.log('B');
 *   }
 * }
 * @Mixins(A, B)
 * class C {}
 *
 * const instance = new C();
 * instance.methodA(); // Outputs: 'A'
 * instance.methodB(); // Outputs: 'B'
 */
export declare function Mixins(...constructors: any[]): (derivedCtor: any) => void;
declare const SINGLETON_KEY: unique symbol;
/**
 * A decorator to make a class a singleton.
 * @param type - The class to be made a singleton.
 * @returns A proxy that ensures only one instance of the class is created.
 * @example
 * @Singleton
 * class MyClass {
 *   constructor() {
 *     console.log('Instance created');
 *   }
 * }
 *
 * const instance1 = new MyClass(); // Outputs: 'Instance created'
 * const instance2 = new MyClass(); // No output, same instance returned
 *
 * console.log(instance1 === instance2); // Outputs: true
 */
export declare function Singleton<T extends new (...args: any[]) => any>(type: T): T & {
    [SINGLETON_KEY]?: InstanceType<T>;
};
export {};
