@intuitionrobotics/ts-common
Version:
29 lines (28 loc) • 1.2 kB
TypeScript
import { ModuleManager } from "./module-manager";
import { Logger } from "./logger/Logger";
import { ValidatorTypeResolver } from "../validator/validator";
import { TimerHandler } from "../utils/date-time-tools";
export declare abstract class Module<Config = any> extends Logger {
private name;
protected manager?: ModuleManager;
readonly initiated = false;
protected config: Config;
protected configValidator?: ValidatorTypeResolver<Config>;
protected timeoutMap: {
[k: string]: number;
};
constructor(name: string);
private deduceName;
debounce(handler: TimerHandler, key: string, ms?: number): void;
throttle(handler: TimerHandler, key: string, ms?: number): void;
throttleV2(handler: TimerHandler, key: string, ms: number, force?: boolean): void;
setConfigValidator(validator: ValidatorTypeResolver<Config>): void;
setDefaultConfig(config: Partial<Config>): void;
getName(): string;
setName(name: string): void;
setConfig(config: Config): void;
setManager(manager: ModuleManager): void;
protected runAsync: (label: string, toCall: () => Promise<any>) => void;
protected init(): void;
validate(): void;
}