import { DataCell, DataColumn, DataLayout, DataNode, DataTable } from '../../types/data-structures';
import { InputPanelState, InputPanelSubmitValue } from './input-panel-types';
/**
 * Create the input panel submit value type giving the original data and the current state
 * @param originalData
 * @param currentState
 * @returns
 */
export declare const createInputPanelSubmitValue: (originalData: DataTable, currentState: InputPanelState) => InputPanelSubmitValue;
/**
 * Decorate cells with corresponding commands.
 * It searches for button cell with mappedCommandId prop ( btnMap )
 * If there's a record, it'll search for commands with the same obj.k
 * If there's a match it'll replace the button cell fun with the command fun
 */
export declare const decorateButtonCells: (cells: Record<string, DataCell>, commands: DataNode[]) => {
    cells: {
        [k: string]: DataCell;
    };
    remainingCommands: DataNode[];
};
/**
 * Create the initialized state of the input panel giving the original data
 * @param inputData
 * @param decimalSeparator
 * @param ReadOnly
 * @returns
 */
export declare const initializeCells: (inputData: DataTable, decimalSeparator: string, isReadOnly: boolean | undefined) => {
    state: {};
    commandState: DataNode[];
};
/**
 * Create a layout for Position="INLINE" or "UPINLINE" setup
 * @param columns - The data columns to create layout from
 * @returns DataLayout for inline positioning
 */
export declare const createInlineLayout: (columns: DataColumn[]) => DataLayout;
export declare const checkEnabledOnOptionSelected: (shape: string | undefined) => boolean;
/**
 * Calculate the longest label width from the input panel cells
 * @param data The input panel data (DataTable)
 * @returns The width in pixels as a string, or undefined if no labels exist
 */
export declare const calculateLongestLabelWidth: (data: DataTable) => string | undefined;
//# sourceMappingURL=input-panel-utils.d.ts.map