import { Component, ComponentType } from '../Component/types';
import { Display, DisplayRow, EmptyCell } from './types';
import { HeaderComponent } from '../Header/types';
export { removeAllFieldReferences } from './removeAllFieldReferences';
export declare const allComponentsInDirection: (display: Display, rowIndex: number, cellIndex: number, direction: 'left' | 'right') => Array<Component | EmptyCell | HeaderComponent>;
export declare const getNextComponentIndexWithSpace: (display: Display, rowIndex: number, cellIndex: number, direction: 'left' | 'right') => number;
export declare const insertRow: (display: Display, rowIndex: number, height?: number) => Display;
export declare const newEmptyCell: (colSpan: number) => EmptyCell;
export declare const TOTAL_COLSPAN = 12;
export declare const appendEmptyCell: (currentPanels: Display, rowIndex: number) => Display;
export declare const setComponent: (display: Display, component: Component | EmptyCell | HeaderComponent, rowIndex: number, cellIndex: number) => Display;
declare type Move = {
    rowIndex: number;
    cellIndex: number;
};
export declare const swapComponents: (display: Display, positionA: Move, positionB: Move) => Display;
export declare const init: () => Display;
export declare const initRow: (components: Array<Component | EmptyCell | HeaderComponent>, height?: number | undefined) => DisplayRow;
export declare const listComponentTypesUsed: (display: Display) => ComponentType[];
export declare const isComponentEmpty: (component: Component | EmptyCell | HeaderComponent) => component is EmptyCell;
export declare function isDisplayComponentsEmpty(display: Display): boolean;
export declare const moveDisplayToNewIndex: (display: DisplayRow[], movingIndex: number, destinationIndex: number) => DisplayRow[];
export declare const countNonHeaderRows: (display: Display) => number;
