// Copyright © 2022-2026 Partium, Inc. DBA Partium import { ServiceProvider } from "./service-provider"; export declare type BaseServiceClass = { new (ServiceProvider: any, ...initArgs: any[]): S; }; /** * Base class for all services. * * Singleton instance will be managed via ServiceProvider. * @Injectable-decorator makes sure that the serviceProvider can address * the class by it's name, even after the code is uglified. */ export declare abstract class BaseService { protected serviceProvider: ServiceProvider; constructor(serviceProvider: ServiceProvider); /** * Function that is called after the service has been instantiated and all serviceProvider.useService()-Calls * are finished. This function can be overridden if needed, it will be mainly used for service-injection to * get references to other base-services. */ onCreate(): void; /** * Returns the name of the class as it should be used for Service-injection. * This function should not be overwritten by child-classes, it will be replaced * by the decorator. * This is required, because class.name can not be used after uglifying the code. * * @returns unique name used for service-injection */ static getInjectionIdentifierName(): string; }