import type { Loggable } from 'brolog'; import { StateSwitchOptions, ServiceableAbstract, StateSwitchInterface } from '../interfaces.js'; import { BusyIndicator } from '../busy-indicator.js'; declare const serviceCtlMixin: (serviceCtlName?: string, options?: StateSwitchOptions | undefined) => (superClass: SuperClass) => ((abstract new (...args: any[]) => { state: StateSwitchInterface; __serviceCtlResettingIndicator: BusyIndicator; __serviceCtlLogger: Loggable; start(): Promise; stop(): Promise; reset(): Promise; /** * onStart & onStop must be implemented by the child class */ onStart(): Promise; onStop(): Promise; emit(..._: any[]): any; }) & { VERSION: string; }) & SuperClass; declare const ServiceCtl_base: ((abstract new (...args: any[]) => { state: StateSwitchInterface; __serviceCtlResettingIndicator: BusyIndicator; __serviceCtlLogger: Loggable; start(): Promise; stop(): Promise; reset(): Promise; /** * onStart & onStop must be implemented by the child class */ onStart(): Promise; onStop(): Promise; emit(..._: any[]): any; }) & { VERSION: string; }) & typeof ServiceableAbstract; declare abstract class ServiceCtl extends ServiceCtl_base { } export { ServiceCtl, serviceCtlMixin, }; //# sourceMappingURL=service-ctl.d.ts.map