import { Server } from "../Server";
export interface ConfigurableServiceConfig {
    version?: number;
}
export declare abstract class ConfigurableServiceBase<TConfig extends ConfigurableServiceConfig> {
    private staticConfig;
    protected configurationRealm: Realm;
    protected server: Server;
    protected hasStarted: boolean;
    protected constructor(staticConfig: TConfig);
    private start;
    private stop;
    private updateServiceConfig;
    private getServiceConfig;
    private setConfig;
    protected abstract setConfigCore(config: TConfig): void;
    protected abstract startCore(server: Server): Promise<void>;
    protected abstract stopCore(): Promise<void>;
}
