import { GridOptions } from 'ag-grid-community';
import { Awaitable, Recordable } from '../type';
import { EditableAgGridFormItemProps } from './editable/interface';
import { AgGridColumnType, AgGridPluginType } from './interface';
export declare function mergeProps(...options: GridOptions[]): GridOptions<any>;
/**
 * 将尺寸单位px去掉
 * @param value
 * @param defaultValue
 * @returns
 */
export declare function pxToNumber(value?: string | number, defaultValue?: number): number;
/**
 * 获取字符串的key
 * @param key
 * @returns
 */
export declare function getStringKey(key?: string | number): string | undefined;
export declare function getShadowName(name: EditableAgGridFormItemProps['name']): string;
/**
 * 运行副作用钩子
 * @param plugins
 * @param pick
 * @param args
 */
export declare function runEffectHooks<T extends any[]>(plugins: AgGridPluginType[], pick: (p: AgGridPluginType) => ((...args: T) => Awaitable<void>) | undefined, ...args: T): Promise<void>;
/**
 * 串形运行钩子
 * @param plugins
 * @param initialValue
 * @param pick
 * @param args
 * @returns
 */
export declare function runPipelineHooks<T, TArgs extends any[]>(plugins: AgGridPluginType[], initialValue: Awaited<T>, pick: (p: AgGridPluginType) => ((value: Awaited<T>, ...args: TArgs) => Awaitable<Awaited<T> | void>) | undefined, ...args: TArgs): Promise<Awaited<T>>;
/**
 * 获取某一个列配置并返回一个对象
 * @param columns
 * @param key
 * @returns
 */
export declare function pickColumnConfig(columns: AgGridColumnType[], key: keyof AgGridColumnType, valueFallback?: any): Recordable;
