import { AdaptableStyle } from '../AdaptableState/Common/AdaptableStyle';
import { AdaptableObject, AdaptableObjectTag } from '../AdaptableState/Common/AdaptableObject';
import { AdaptableIcon, AdaptableModule } from '../types';
import { CustomWindowConfig } from '../AdaptableState/Common/CustomWindowConfig';
import { ProgressIndicatorConfig } from '../AdaptableState/Common/ProgressIndicatorConfig';
/**
 * Functions relating to User Interface section of Adaptable State
 */
export interface UserInterfaceApi {
    /**
     * Retrieves Color Palette currently being used
     */
    getColorPalette(): string[];
    /**
     * Retrieves any Style Class Names from User Interface Options
     */
    getStyleClassNames(): string[] | undefined;
    /**
     * Returns Style set for Editable cells
     */
    getEditableCellStyle(): AdaptableStyle | undefined;
    /**
     * Returns Style for Cells that have been edited
     */
    getEditedCellStyle(): AdaptableStyle | undefined;
    /**
     * Returns Style set for ReadOnly Cells
     */
    getReadOnlyCellStyle(): AdaptableStyle | undefined;
    /**
     * Retrieves any Object Tags (provided in User Interface Options)
     */
    getAdaptableObjectTags(): AdaptableObjectTag[] | undefined;
    /**
     * Retrieves all objects in list which contain the given Tag
     * @param tag Tag to check
     * @param adaptableModule optional Module to check
     */
    getAdaptableObjectsWithTag(tag: AdaptableObjectTag, adaptableModule?: AdaptableModule): AdaptableObject[] | undefined;
    /**
     * Returns AdapTable Icon with given name
     * @param name name of Icon
     */
    getCustomIconDefinition(name: string): AdaptableIcon | undefined;
    /**
     * Displays a progress indicator
     * @param config.progressText - text to display in the progress indicator
     * @param config.render - render function for a custom progress indicator (if not using a framework component)
     * @param config.frameworkComponent - the framework (React/Angular) component to render as progress indicator
     * @param config.delay - delay before showing the progress indicator (in milliseconds)
     */
    showProgressIndicator(config: ProgressIndicatorConfig): void;
    /**
     * Hides the progress indicator
     */
    hideProgressIndicator(): void;
    /**
     * Opens window with custom content
     * @param config
     */
    openCustomWindowPopup(config: CustomWindowConfig): {
        close: () => void;
    };
    /**
     * Closes a custom window
     *
     * @param windowId window popup id
     */
    closeCustomWindowPopup(windowId: string): void;
}
