import { SaveLogger } from '../base/logger';
import { BaseObject } from '../context/base.object';
import { RequestContext } from '../context/request.context';
import { LogLevel } from '../model/log.leval';
/** 后台服务基类 */
export declare class BackupServer<CONTEXT extends RequestContext> extends BaseObject<CONTEXT> {
    protected readonly name: string;
    protected readonly delayTime: number;
    protected readonly intervalTime: number;
    protected readonly executeTask?: ((server: BackupServer<CONTEXT>) => Promise<void>) | undefined;
    private readonly onStop;
    /** 任务已经执行次数 */
    private runCount;
    /**
     * 后台服务
     * @param context 上下文对象
     * @param name 任务名称
     * @param delayTime 开始延时: ms
     * @param intervalTime 间隔时长: ms
     * @param executeTask 任务执行回调
     * @param doStopTask 任务停止回调
     */
    constructor(context: CONTEXT, name: string, delayTime?: number, intervalTime?: number, executeTask?: ((server: BackupServer<CONTEXT>) => Promise<void>) | undefined, doStopTask?: () => boolean);
    /** 获取默认的服务上下文对象 */
    static getServerContext(options?: {
        logger?: SaveLogger;
        onLog?: (level: LogLevel, data: any | any[] | undefined) => void;
    }): RequestContext;
    /** 运行服务, 注意：任务不停止，不会返回，所以不要使用 await 等着返回 */
    start(): Promise<void>;
    protected runTask(runRef: number): Promise<void>;
}
