import { HealthCheckResults, Log, Skill as ISkill, SkillContext, SkillFeature, BootCallback } from '@sprucelabs/spruce-skill-utils'; export default class Skill implements ISkill { rootDir: string; activeDir: string; hashSpruceDir: string; private _featureMap; private _log; private bootHandlers; private postBootHandlers; private hasInvokedBootHandlers; private get log(); private _isRunning; private shutdownTimeout; private isKilling; private shouldCountdownOnExit; private context; constructor(options: SkillOptions); onBoot(cb: BootCallback): void; onPostBoot(cb: BootCallback): void; isFeatureInstalled: (featureCode: string) => Promise; registerFeature: (featureCode: string, feature: SkillFeature) => void; isRunning(): boolean; checkHealth: () => Promise; private done; private shutDown; execute: () => Promise; private resolveBootHandlers; kill(): Promise; isBooted(): boolean; getFeatures(): SkillFeature[]; private getFeaturesWithCode; getFeatureByCode(code: string): SkillFeature; buildLog(...args: any[]): Log; getContext(): SkillContext; updateContext(key: Key, value: SkillContext[Key]): void; private buildLogWithTransports; private importLogsFromMutating; private set featureMap(value); private get featureMap(); } export interface SkillOptions { rootDir: string; activeDir: string; hashSpruceDir: string; log?: Log; shouldCountdownOnExit?: boolean; } export type FeatureMap = Record;