// 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); }