import type { v4 } from '@sap/ux-specification-types';
import type { ToolBar } from './ToolBar';
/**
 * Sync rule function for export of creationMode.name.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 * @param key - key or property in config.json
 * @param manifestKey - key or property in manifest
 */
export declare function exportCreationModeName(manifestSection: unknown, configObject: unknown, key: string, manifestKey: string): void;
/**
 * If a view index was changed we need to adapt the order of views in manifest.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 */
export declare function checkViewOrder(manifestSection: unknown, configObject: unknown): void;
/**
 * Common sync rule function for export of creation for personalization object.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 * @param key - key or property in config.json
 * @param manifestKey - key or property in manifest
 */
export declare function exportPersonalization(manifestSection: unknown, configObject: unknown, key: string, manifestKey?: string): void;
/**
 * Common sync rule function for export of personalization properties.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 * @param key - key or property in config.json
 * @param manifestKey - key or property in manifest
 */
export declare function exportPersonalizationProperty(manifestSection: unknown, configObject: unknown, key: string, manifestKey: string): void;
/**
 * Sync rule function for the deletion of creationMode.name.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param manifestKey - key or property in manifest
 */
export declare function deleteCreationModeName(manifestSection: unknown, manifestKey: string): void;
/**
 * Common sync rule function for the deletion of any property of personalization.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param _configObject - page config object
 * @param _key - key or property in page config object
 * @param manifestKey - key or property in manifest
 */
export declare function deletePersonalizationProperty(manifestSection: unknown, _configObject: object, _key: string, manifestKey: string): void;
/**
 * Sync rule function for export of creationMode properties.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param configObject - section in config.json describing the table settings
 * @param key - key or property in config.json
 * @param manifestKey - key or property in manifest
 */
export declare function exportCreationModeCreateAtEnd(manifestSection: unknown, configObject: unknown, key: string, manifestKey: string): void;
/**
 * Sync rule function for the deletion of creationMode properties.
 *
 * @param manifestSection - section in manifest comprising the table settings
 * @param manifestKey - key or property in manifest
 */
export declare function deleteCreationModeCreateAtEnd(manifestSection: unknown, manifestKey: string): void;
/**
 * Sync class for PersonalizationType.
 */
export declare class PersonalizationType implements v4.PersonalizationType {
    column?: boolean;
    sort?: boolean;
    filter?: boolean;
}
export declare class ViewPersonalizationType implements v4.ViewPersonalizationType {
    column?: boolean;
    sort?: boolean;
    filter?: boolean;
}
/****************************************
 * Sync class for QuickVariantSelectionV4
 */
export declare class QuickVariantSelectionV4 implements v4.QuickVariantSelectionV4 {
    paths: v4.AnnotationPathAsObject[];
    hideTableTitle?: boolean;
    showCounts?: boolean;
}
/****************************************
 * Sync class for TableSettings
 */
export declare class TableSettings implements v4.TableSettings {
    type?: v4.TableTypeV4;
    personalization?: PersonalizationType;
    selectionMode?: v4.SelectionMode;
    selectAll?: boolean;
    selectionLimit?: number;
    enableExport?: boolean;
    quickVariantSelection?: QuickVariantSelectionV4;
    condensedTableLayout?: boolean;
}
/****************************************
 * Sync class for ALPChartView (renamed due to indirection in app schema)
 */
export declare class ALPChart implements v4.ALPChartView {
    annotationPath: string;
    toolBar?: v4.ViewChartToolBar;
}
export declare class CommonViewSettings implements v4.CommonViewSettings {
    key: string;
    index: number;
    annotationPath: string;
    entitySet?: string;
}
/****************************************
 * Sync class for view table settings
 */
export declare class TableViewSettings extends CommonViewSettings implements v4.TableSettings {
    type?: v4.TableTypeV4;
    personalization?: ViewPersonalizationType;
    selectionMode?: v4.SelectionMode;
    selectAll?: boolean;
    selectionLimit?: number;
    enableExport?: boolean;
    quickVariantSelection?: QuickVariantSelectionV4;
    condensedTableLayout?: boolean;
    hierarchyQualifier?: string;
}
/****************************************
 * Sync class for ALPTableView (renamed due to indirection in app schema)
 */
export declare class ALPTable extends TableViewSettings implements v4.ALPTableView {
    annotationPath: string;
    initialLoad?: v4.InitialLoadType;
    toolBar?: ToolBar;
}
/****************************************
 * Sync class for LRChartView
 */
export declare class LRChartView extends CommonViewSettings implements v4.LRChartView {
    toolBar?: v4.ViewChartToolBar;
    visible?: boolean;
}
declare const LRTableView_base: typeof TableViewSettings;
/****************************************
 * Sync class for LRTableView
 */
export declare class LRTableView extends LRTableView_base {
    keepPreviousPersonalization?: boolean;
    visible?: boolean;
    toolBar?: ToolBar;
}
export declare class TableViewExtension implements v4.TableViewExtension {
    key: string;
    index: number;
    label?: string;
    template: string;
    visible?: boolean;
}
/**
 * LR multi-view: own class for properties on views' level
 */
export declare class MultiTableModeV4 implements v4.MultiTableModeV4 {
    [key: string]: v4.ViewTypeV4;
    showCounts?: boolean;
}
/****************************************
 * Sync class for Table
 */
export declare class Table extends TableSettings implements v4.Table {
    annotationPath?: string;
    views?: MultiTableModeV4;
    initialLoad?: v4.InitialLoadType;
    toolBar?: ToolBar;
}
export {};
//# sourceMappingURL=Table.d.ts.map