import { CustomSortOptions } from '../AdaptableOptions/CustomSortOptions';
import { DataSetOptions } from '../AdaptableOptions/DataSetOptions';
import { ActionColumnOptions, AdaptableOptions, AlertOptions, CalendarOptions, CellSummaryOptions, ChartingOptions, ColumnMenuOptions, ColumnOptions, ContainerOptions, ContextMenuOptions, DashboardOptions, DataChangeHistoryOptions, EditOptions, EntitlementOptions, ExportOptions, FilterOptions, FlashingCellOptions, FormatColumnOptions, LayoutOptions, NoteOptions, NotificationsOptions, PredicateOptions, QuickSearchOptions, RowFormOptions, SettingsPanelOptions, StateOptions, TeamSharingOptions, ToolPanelOptions, UserInterfaceOptions } from '../types';
import { Fdc3Options } from '../AdaptableOptions/Fdc3Options';
import { ExpressionOptions } from '../AdaptableOptions/ExpressionOptions';
import { DataImportOptions } from '../AdaptableOptions/DataImportOptions';
import { CommentOptions } from '../AdaptableOptions/CommentOptions';
/**
 * Range of functions to access Adaptable Options
 */
export interface OptionsApi {
    /**
     * Returns `AdaptableOptions.adaptableId`
     */
    getAdaptableId(): string;
    /**
     * Returns `AdaptableOptions.adaptableStateKey`
     */
    getAdaptableStateKey(): string;
    /**
     * Returns `AdaptableOptions.autogeneratePrimaryKey`
     */
    isAutogeneratePrimaryKey(): boolean;
    /**
     * Returns `AdaptableOptions.licenseKey`
     */
    getLicenseKey(): string;
    /**
     * Returns `AdaptableOptions.primaryKey`
     */
    getPrimaryKey(): string;
    /**
     * Returns `AdaptableOptions.userName`
     */
    getUserName(): string;
    /**
     * Returns provided `AdaptableOptions`
     */
    getAdaptableOptions(): Readonly<AdaptableOptions>;
    /**
     * Returns `AdaptableOptions.actionColumnOptions`
     */
    getActionColumnOptions(): Readonly<ActionColumnOptions>;
    /**
     * Returns `AdaptableOptions.alertOptions`
     */
    getAlertOptions(): Readonly<AlertOptions>;
    /**
     * Returns `AdaptableOptions.expressionOptions`
     */
    getExpressionOptions(): Readonly<ExpressionOptions>;
    /**
     * Returns `AdaptableOptions.calendarOptions`
     */
    getCalendarOptions(): Readonly<CalendarOptions>;
    /**
     * Returns `AdaptableOptions.cellSummaryOptions`
     */
    getCellSummaryOptions(): Readonly<CellSummaryOptions>;
    /**
     * Returns `AdaptableOptions.chartingOptions`
     */
    getChartingOptions(): Readonly<ChartingOptions>;
    /**
     * Returns `AdaptableOptions.containerOptions`
     */
    getContainerOptions(): Readonly<ContainerOptions>;
    /**
     * Returns `AdaptableOptions.columnOptions`
     */
    getColumnOptions(): Readonly<ColumnOptions>;
    /**
     * Returns `AdaptableOptions.commentOptions`
     */
    getCommentOptions(): Readonly<CommentOptions>;
    /**
     * Returns `AdaptableOptions.customSortOptions`
     */
    getCustomSortOptions(): Readonly<CustomSortOptions>;
    /**
     * Returns `AdaptableOptions.dashboardOptions`
     */
    getDashboardOptions(): Readonly<DashboardOptions>;
    /**
     * Returns `AdaptableOptions.dataChangeHistoryOptions`
     */
    getDataChangeHistoryOptions(): Readonly<DataChangeHistoryOptions>;
    /**
     * Returns `AdaptableOptions.dataSetOptions`
     */
    getDataSetOptions(): Readonly<DataSetOptions>;
    /**
     * Returns `AdaptableOptions.editOptions`
     */
    getEditOptions(): Readonly<EditOptions>;
    /**
     * Returns `AdaptableOptions.entitlementOptions`
     */
    getEntitlementOptions(): Readonly<EntitlementOptions>;
    /**
     * Returns `AdaptableOptions.exportOptions`
     */
    getExportOptions(): Readonly<ExportOptions>;
    /**
     * Returns `AdaptableOptions.filterOptions`
     */
    getFilterOptions(): Readonly<FilterOptions>;
    /**
     * Returns `AdaptableOptions.flashingCellOptions`
     */
    getFlashingCellOptions(): Readonly<FlashingCellOptions>;
    /**
     * Returns `AdaptableOptions.layoutOptions`
     */
    getLayoutOptions(): Readonly<LayoutOptions>;
    /**
     * Returns `AdaptableOptions.columnMenuOptions`
     */
    getColumnMenuOptions(): Readonly<ColumnMenuOptions>;
    /**
     * Returns `AdaptableOptions.contextMenuOptions`
     */
    getContextMenuOptions(): Readonly<ContextMenuOptions>;
    /**
     * Returns `AdaptableOptions.notificationsOptions`
     */
    getNotificationsOptions(): Readonly<NotificationsOptions>;
    /**
     * Returns `AdaptableOptions.rowFormOptions`
     */
    getRowFormOptions(): Readonly<RowFormOptions>;
    /**
     * Returns `AdaptableOptions.quickSearchOptions`
     */
    getQuickSearchOptions(): Readonly<QuickSearchOptions>;
    /**
     * Returns `AdaptableOptions.formatColumnOptions`
     */
    getFormatColumnOptions(): Readonly<FormatColumnOptions>;
    /**
     * Returns `AdaptableOptions.noteOptions`
     */
    getNoteOptions(): Readonly<NoteOptions>;
    /**
     * Returns `AdaptableOptions.predicateOptions`
     */
    getPredicateOptions(): Readonly<PredicateOptions>;
    /**
     * Returns `AdaptableOptions.settingsPanelOptions`
     */
    getSettingsPanelOptions(): Readonly<SettingsPanelOptions>;
    /**
     * Returns `AdaptableOptions.stateOptions`
     */
    getStateOptions(): Readonly<StateOptions>;
    /**
     * Returns `AdaptableOptions.teamSharingOptions`
     */
    getTeamSharingOptions(): Readonly<TeamSharingOptions>;
    /**
     * Returns `AdaptableOptions.toolPanelOptions`
     */
    getToolPanelOptions(): Readonly<ToolPanelOptions>;
    /**
     * Returns `AdaptableOptions.userInterfaceOptions`
     */
    getUserInterfaceOptions(): Readonly<UserInterfaceOptions>;
    /**
     * Returns `AdaptableOptions.fdc3Options`
     */
    getFdc3Options(): Readonly<Fdc3Options>;
    /**
     * Returns `AdaptableOptions.dataImportOptions`
     */
    getDataImportOptions(): Readonly<DataImportOptions>;
    /**
     * Returns `AdaptableOptions.adaptableContext`
     */
    getAdaptableContext<TContext = Record<string, any>>(): TContext;
    /**
     * Adds a key-value pair to the AdaptableContext
     * @param key - The key to add
     * @param value - The value to add
     */
    addToAdaptableContext<TContext = Record<string, any>>(key: keyof TContext, value: TContext[keyof TContext]): void;
    /**
     * Removes a key from the AdaptableContext
     * @param key - The key to remove
     */
    removeFromAdaptableContext<TContext = Record<string, any>>(key: keyof TContext): void;
    /**
     * Clears all key-value pairs from the AdaptableContext
     */
    clearAdaptableContext(): void;
}
