import type { BaseContext, IBaseAtom, BaseOptions } from '../types/atom';
import { AtomName } from '../types/atom';
import type { CombineAll, MapAtomTypes, ScheduleOptions } from '../types/schedule';
export declare class Schedule<T extends AtomName[]> {
    atomInstaces: IBaseAtom<BaseContext, BaseOptions>[];
    atomList: AtomName[];
    private context;
    options: ScheduleOptions;
    protected query: string;
    historySteps: any;
    constructor(atomList: T, options?: ScheduleOptions, context?: CombineAll<MapAtomTypes<T>>);
    initContext(): void;
    getAtomOptions(atomName: AtomName): any;
    atomFactory(atomName: AtomName): any;
    private parseSubTasks;
    private addUsage;
    run(query?: string, shouldRunList?: Record<AtomName, boolean>): Promise<Awaited<CombineAll<MapAtomTypes<T>>>>;
    setNewTask(context: any): void;
    updateOptions(options: ScheduleOptions): void;
    updateContext(context: any, isReplace?: boolean): void;
    getContext(atomName?: AtomName): CombineAll<MapAtomTypes<T>>;
}
