import { 
    Parameters, ConfigParams, 
    Descriptor, ICleanable, IConfigurable, 
    IExecutable, INotifiable, IOpenable, 
    IReferenceable, IReferences, 
    IUnreferenceable, Context
} from "pip-services4-components-node";

class MyComponent implements IConfigurable, IReferenceable, IUnreferenceable, IOpenable, IExecutable, INotifiable, ICleanable {
    public constructor() { /* Initialize the component */ }
    public configure(config: ConfigParams) { /* configure the component */ }
    public setReferences(refs: IReferences) { /* set component dependencies */ }
    public unsetReferences() { /* unset component references */ }
    public isOpen(): boolean { /* return the component open state */ }
    public open(ctx: Context): Promise<void> { /* open the component */ }
    public close(ctx: Context): Promise<void> { /* close the component */ }
    public execute(ctx: Context, args: Parameters): Promise<any> { /* execute the component transaction */ }
    public notify(ctx: Context, args: Parameters) { /* notify the component about events */ }
    public clear(ctx: Context): Promise<void> { /* clear the component state */ }
}