import { AdaptableColumn } from '../AdaptableState/Common/AdaptableColumn';
import { StyledColumn, StyledColumnState } from '../AdaptableState/StyledColumnState';
import { LayoutExtendedConfig } from '../types';
/**
 * Provides run-time access to Styled Column Module and associated state
 */
export interface StyledColumnApi {
    /**
     * Retrieves Styled Column section from Adaptable State
     */
    getStyledColumnState(): StyledColumnState;
    /**
     * Retrieves all Styled Columns in Adaptable State
     * @returns Styled Columns
     */
    getStyledColumns(config?: LayoutExtendedConfig): StyledColumn[];
    /**
     * Retrieves Styled Column by Id
     * @param id Styled Column id
     * @returns Styled Column
     */
    getStyledColumnById(id: StyledColumn['Uuid'], config?: LayoutExtendedConfig): StyledColumn;
    /**
     * Retrieves Styled Column for given Column Id
     * @param columnId Styled Column id
     * @returns Styled Column
     */
    getStyledColumnForColumnId(columnId: StyledColumn['ColumnId'], config?: LayoutExtendedConfig): StyledColumn;
    /**
     * Retrieves all active (not-suspended) Styled Columns in Adaptable State
     * @returns Styled Columns
     */
    getActiveStyledColumns(config?: LayoutExtendedConfig): StyledColumn[];
    /**
     * Retrieves all suspended Styled Columns in Adaptable State
     * @returns Styled Columns
     */
    getSuspendedStyledColumns(config?: LayoutExtendedConfig): StyledColumn[];
    /**
     * Delete a Styled column
     * @param styledColumn
     */
    deleteStyledColumn(styledColumn: StyledColumn): void;
    /**
     * Edits a Styled Column
     * @param styledColumn Styled Column to edit
     */
    editStyledColumn(styledColumn: StyledColumn): StyledColumn;
    /**
     * Delete all Styled Columns in State
     */
    deleteAllStyledColumns(): void;
    /**
     * Create a Styled column
     * @param styledColumn
     */
    addStyledColumn(styledColumn: StyledColumn): void;
    /**
     * Suspends an active Styled Column
     * @param styledColumn
     */
    suspendStyledColumn(styledColumn: StyledColumn): void;
    /**
     * Activates a suspended Styled Column
     * @param styledColumn
     */
    unSuspendStyledColumn(styledColumn: StyledColumn): void;
    /**
     * Suspends all Styled Columns
     */
    suspendAllStyledColumn(): void;
    /**
     * Activates all suspended Styled Column
     */
    unSuspendAllStyledColumn(): void;
    /**
     * Checks whether Column with given `columnId` has a PercentBar Style applied
     * @param columnId column ID
     */
    hasPercentBarStyle(columnId: string): boolean;
    /**
     * Checks whether Column with given `columnId` has a Gradient Style applied
     * @param columnId column ID
     */
    hasGradientStyle(columnId: string): boolean;
    /**
     * Checks whether Column is a Sparkline Column
     * @param columnId column ID
     */
    isSparklineStyleStyledColumn(column: AdaptableColumn): boolean;
    /**
     * Returns a Styled Column for a given column
     * @param column Column to check
     */
    getActiveStyledColumnForColumn(column: AdaptableColumn): StyledColumn | undefined;
    /**
     * Open Styled Column section of Settings Panel
     */
    openStyledColumnSettingsPanel(): void;
    /**
     * Can this AdapTable instance display Sparklines (e.g. is AG Grid SparklinesModule installed)
     */
    canDisplaySparklines(): boolean;
}
