///
import { ArgsToData, ArgTypes } from "./arg_types";
import { EcsEvent, UnknownEvent } from "./events";
import { Query } from "./query";
export interface BaseSystemArgs {
readonly name: string;
readonly args: StepArgTypes;
readonly before?: Iterable;
readonly after?: Iterable;
readonly events?: Iterable>;
}
export interface SystemArgs extends BaseSystemArgs {
step: (...args: ArgsToData) => void;
}
export declare class System {
readonly name: string;
readonly args: StepArgTypes;
readonly step: SystemArgs['step'];
readonly before: ReadonlySet;
readonly after: ReadonlySet;
readonly events: Set;
readonly query: Query;
constructor({ name, args, step, before, after, events }: SystemArgs);
toString(): string;
}