intentful
Version:
Create Custom Skills with less headache
29 lines (28 loc) • 1.03 kB
TypeScript
import { LabeledRequestHandler, RequestHandlerProvider } from '../../skill/models';
import { Calculable, ModelProvider } from '../../types';
export interface CommandModel {
type?: string;
description?: string;
delay?: Calculable<number>;
screenLock?: Calculable<boolean>;
sequencer?: Calculable<string>;
when?: Calculable<string>;
}
export interface CommandProps {
description?: string;
delay?: Calculable<number>;
screenLock?: Calculable<boolean>;
sequencer?: Calculable<string>;
when?: Calculable<string>;
}
export declare abstract class Command<T extends CommandModel, P extends CommandProps> implements RequestHandlerProvider, ModelProvider<T> {
readonly type: string;
readonly props: P;
constructor(type: string, props: P);
toJSON(): T;
abstract commandSpecificRequestHandlers(): LabeledRequestHandler[];
abstract commandSpecificModel(): T;
model(): T;
getRequestHandlers(): LabeledRequestHandler[];
convertCommandPropsToModel(): CommandModel;
}