import { ColumnScope } from '../AdaptableState/Common/ColumnScope';
import { AdaptableColumn } from '../AdaptableState/Common/AdaptableColumn';
import { BaseContext } from '../../types';
import { IRowNode } from 'ag-grid-enterprise';
/**
 * Provides Custom Formats used in Format Column Module
 */
export interface FormatColumnOptions {
    /**
     * Custom Formatters to use in Format Column Module
     */
    customDisplayFormatters?: CustomDisplayFormatter[];
}
/**
 * Defines a Custom Display Format
 */
export interface CustomDisplayFormatter {
    /**
     * Custom Format Id
     */
    id: string;
    /**
     * Custom Format Description
     */
    label?: string;
    /**
     * Function used to render the Custom Display Format
     */
    handler: (customDisplayFormatterContext: CustomDisplayFormatterContext) => any;
    /**
     * Used by Format Columns wizard to show where Custom Display Format can be applied
     */
    scope: ColumnScope;
}
/**
 * Context used in handler of CustomDisplayFormatter
 */
export interface CustomDisplayFormatterContext extends BaseContext {
    /**
     * Column where Custom Display Format will apply
     */
    adaptableColumn: AdaptableColumn;
    /**
     * Non-formatted Cell Value
     */
    cellValue: any;
    /**
     * Node where Custom Display Format will apply
     */
    rowNode: IRowNode;
}
