Version: 18.1.219.0.019.1.119.1.219.1.319.1.420.0.020.1.0-beta.020.1.0-beta.120.1.020.2.021.0.021.0.121.1.021.1.121.2.021.2.121.2.222.0.0-beta.022.0.0-beta.122.0.0-beta.222.0.0-beta.322.0.0-beta.422.0.022.1.022.1.123.0.023.0.123.0.223.1.023.1.123.2.023.2.124.0.024.1.025.0.025.0.125.1.025.2.025.2.125.3.026.0.026.1.026.2.026.2.127.0.027.0.127.1.027.2.027.2.127.3.0-beta.027.3.0-beta.127.3.028.0.028.0.128.0.228.1.028.1.128.2.028.2.129.0.029.1.029.2.029.3.029.3.129.3.229.3.329.3.429.3.530.0.030.0.130.0.230.0.330.0.530.0.630.1.030.2.030.2.131.0.031.0.131.0.231.0.331.1.031.1.131.2.031.2.131.3.031.3.131.3.2
import { AgPromise } from '../utils';
/** This is for User Components only, do not implement this for internal components. */
export interface IComponent<T> {
/** Return the DOM element of your component, this is what the grid puts into the DOM */
getGui(): HTMLElement;
/** Gets called once by grid when the component is being removed; if your component needs to do any cleanup, do it here */
destroy?(): void;
/** The init(params) method is called on the component once. */
init?(params: T): AgPromise<void> | void;
}