// Type definitions for ag-grid v18.1.2
// Project: http://www.ag-grid.com/
// Definitions by: Niall Crosby
import { IComponent } from "../../interfaces/iComponent";
/**
* B the business interface (ie IHeader)
* A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
*/
export interface FrameworkComponentWrapper {
wrap>(frameworkComponent: {
new (): any;
}, methodList: string[], optionalMethodList?: string[], componentName?: string): A;
}
export interface WrapableInterface {
hasMethod(name: string): boolean;
callMethod(name: string, args: IArguments): void;
addMethod(name: string, callback: Function): void;
}
export declare abstract class BaseComponentWrapper implements FrameworkComponentWrapper {
wrap>(OriginalConstructor: {
new (): any;
}, mandatoryMethodList: string[], optionalMethodList?: string[], componentName?: string): A;
abstract createWrapper(OriginalConstructor: {
new (): any;
}, componentName?: string): F;
private createMethod(wrapper, methodName, mandatory);
private createMethodProxy(wrapper, methodName, mandatory);
}