import { Blueprint, Schemas } from 'optimal'; import { MixinTarget } from './types'; export declare const EmptyBlueprint: {}; export declare function ContractMixin = MixinTarget>(superClass: T): { new (...args: any[]): { /** Validated and configured options. */ readonly options: Readonly>; /** * Set an options object by merging the new partial and existing options * with the defined blueprint, while running all validation checks. * Freeze and return the options object. * * ```ts * object.configure({ name: 'Jil' }); * * object.configure((prevOptions) => ({ * nestedObject: { * ...prevOptions.nestedObject, * some: 'value', * }, * })); * ``` */ configure(options?: Partial | ((options: Required) => Partial) | undefined): Readonly>; /** * Define an `optimal` blueprint in which to validate and build the * options object passed to the constructor, or when manual setting. * * A boolean is passed as the 2nd argument to determine whether this is * validating on class instantiation (first time), or by calling * `configure()` (all other times). */ blueprint(schemas: Schemas, onConstruction?: boolean): Blueprint | undefined; constructor: Function; toString: () => string; toLocaleString: () => string; valueOf: () => Object; hasOwnProperty: (v: PropertyKey) => boolean; isPrototypeOf: (v: Object) => boolean; propertyIsEnumerable: (v: PropertyKey) => boolean; }; } & T;