import type { RuntimeContext } from '../runtime/types';
import type { GraphData } from '../spec';
import type { BaseLayoutOptions } from './types';
/**
* 布局的基类
*
* Base class for layout
*/
export abstract class BaseLayout {
public abstract id: string;
public options: O;
protected context: RuntimeContext;
constructor(context: RuntimeContext, options?: O) {
this.context = context;
this.options = options || ({} as O);
}
public stop?: () => void;
public tick?: (iterations?: number) => GraphData;
public abstract execute(model: GraphData, options?: O): Promise;
}