/** * A base class for classes that must be constructed and initialized asynchronously. */ export declare abstract class AsyncCreatable { /** * Constructs a new `AsyncCreatable` instance. For internal and subclass use only. * New subclass instances must be created with the static {@link create} method. * * @param options An options object providing initialization params. */ constructor(options: O); /** * Asynchronously constructs and initializes a new instance of a concrete subclass with the provided `options`. * * @param options An options object providing initialization params to the async constructor. */ static create>(this: new (options: P) => T, options: P): Promise; /** * Asynchronously initializes newly constructed instances of a concrete subclass. */ protected abstract init(): Promise; } /** * A base class for classes that must be constructed and initialized asynchronously without requiring an options object. */ export declare abstract class AsyncOptionalCreatable { /** * Constructs a new `AsyncCreatable` instance. For internal and subclass use only. * New subclass instances must be created with the static {@link create} method. * * @param options An options object providing initialization params. */ constructor(options?: O); /** * Asynchronously constructs and initializes a new instance of a concrete subclass with the optional `options`. * * @param options An options object providing initialization params to the async constructor. */ static create>(this: new (options?: P) => T, options?: P): Promise; /** * Asynchronously initializes newly constructed instances of a concrete subclass. */ protected abstract init(): Promise; }