intentful
Version:
Create Custom Skills with less headache
25 lines (24 loc) • 786 B
TypeScript
import { Calculable, ModelProvider } from '../..';
import { BindingModel, BindingProps } from '../interfaces';
export interface APLABaseComponentModel {
bind?: BindingModel[];
description?: string;
id?: string;
type?: string;
when?: Calculable<string>;
}
export interface APLABaseComponentProps {
bind?: BindingProps[];
description?: string;
id?: string;
when?: Calculable<string>;
}
export declare abstract class APLAComponent<T extends APLABaseComponentModel, P extends APLABaseComponentProps> implements ModelProvider<T> {
readonly type: string;
readonly props: P;
protected constructor(type: string, props: P);
toJSON(): T;
abstract componentSpecificModel(): T;
model(): T;
private convertBaseComponentPropsToModel;
}