///
import { Patch } from "immer";
import { ArgsToData, ArgTypes, UUID } from "./arg_types";
import { Plugin } from "./plugin";
import { Resource } from "./resource";
import { BaseSystemArgs, System } from "./system";
import { DefaultMap } from "./utils";
declare class AsyncSystemData {
systems: DefaultMap;
running?: boolean;
}>>;
done: Promise;
}
export declare const AsyncSystemResource: Resource;
export interface AsyncSystemArgs extends BaseSystemArgs {
step: (...args: ArgsToData) => Promise;
exclusive?: boolean;
skipIfApplyingPatches?: boolean;
alwaysRunOnEvents?: boolean;
}
declare const OptionalStepEvent: import("nova_ecs/arg_modifier").ArgModifier | undefined>;
export declare class AsyncSystem extends System<[typeof AsyncSystemResource, typeof UUID, typeof OptionalStepEvent, ...StepArgTypes]> {
constructor(systemArgs: AsyncSystemArgs);
}
export declare const AsyncSystemPlugin: Plugin;
export {};