import { Store } from './Store';
export declare class ColumnsStore<V> extends Store<V> {
    defaults: any;
    position: any;
    visibleLimit: number;
    constructor({ items, storeName, visibleLimit, ...params }: {
        [x: string]: any;
        items: any;
        storeName?: string;
        visibleLimit?: number;
    });
    setVisibleColumns(listIds: any): void;
    getColumnOffset(id: any): number;
    /**
     * Setup new visual position for item
     * @param {Object} record
     * @param {Number} newPosition zero based index
     */
    setVisualPosition(record: any, newPosition: any): void;
    setupItemsPosition(items: any): any;
    getSortedByPosition(items: any): any;
    isColumnCustomizable(id: any): any;
    getFromDefaults(): any;
    mergeItemsWithDefaults(items: any, defaults: any): any[];
    adjustExtraColumnsVisibility(columns: any, visibleLimit: any): any;
    isCustomizableVisibleColumn({ isVisible, isCustomizable }: {
        isVisible: any;
        isCustomizable: any;
    }): any;
    canBeHidden({ isVisible, isCustomizable, isRequired, isAvailable }: {
        isVisible: any;
        isCustomizable: any;
        isRequired: any;
        isAvailable: any;
    }): any;
    /**
     * Add additional columns using this logic:
     * it should be placed at the end column's list, but before the last non editable column.
     *
     * @param {Object[]} columns
     * @param {Object[]} additionalColumns
     * @return {Object[]}
     */
    addExtraColumns(columns: any, additionalColumns: any): any;
    loadAll(): Promise<any[]>;
    save(): void;
    getGridColumns(filterByShortView?: boolean): any[];
}
