import type * as Excel from '@mui/x-internal-exceljs-fork';
import type { RefObject } from '@mui/x-internals/types';
import { type GridRowId, type GridColDef } from '@mui/x-data-grid-pro';
import { type GridStateColDef } from '@mui/x-data-grid/internals';
import type { ColumnsStylesInterface, GridExcelExportOptions } from "../gridExcelExportInterface.mjs";
import type { GridPrivateApiPremium } from "../../../../models/gridApiPremium.mjs";
import { type SerializedColumns, type SerializedRow, type ValueOptionsData } from "./utils.mjs";
export type { ExcelExportInitEvent } from "./utils.mjs";
/**
 * FIXME: This function mutates the colspan info, but colspan info assumes that the columns
 * passed to it are always consistent. In this case, the exported columns may differ from the
 * actual rendered columns.
 * The caller of this function MUST call `resetColSpan()` before and after usage.
 */
export declare const serializeRowUnsafe: (id: GridRowId, columns: GridStateColDef[], apiRef: RefObject<GridPrivateApiPremium>, defaultValueOptionsFormulae: {
  [field: string]: {
    address: string;
  };
}, options: Pick<BuildExcelOptions, "escapeFormulas">) => SerializedRow;
export declare const serializeColumn: (column: GridColDef, columnsStyles: ColumnsStylesInterface) => {
  key: string;
  headerText: string;
  width: number;
  style: {
    numFmt?: string | undefined;
    font?: Partial<Excel.Font> | undefined;
    alignment?: Partial<Excel.Alignment> | undefined;
    protection?: Partial<Excel.Protection> | undefined;
    border?: Partial<Excel.Borders> | undefined;
    fill?: Excel.Fill | undefined;
  };
};
export declare function serializeColumns(columns: GridStateColDef[], styles: ColumnsStylesInterface): SerializedColumns;
export declare function getDataForValueOptionsSheet(columns: GridStateColDef[], valueOptionsSheetName: string, api: GridPrivateApiPremium): Promise<ValueOptionsData>;
interface BuildExcelOptions extends Pick<GridExcelExportOptions, 'exceljsPreProcess' | 'exceljsPostProcess'>, Pick<Required<GridExcelExportOptions>, 'valueOptionsSheetName' | 'includeHeaders' | 'includeColumnGroupsHeaders' | 'escapeFormulas'> {
  columns: GridStateColDef[];
  rowIds: GridRowId[];
  columnsStyles?: ColumnsStylesInterface;
}
export declare function buildExcel(options: BuildExcelOptions, apiRef: RefObject<GridPrivateApiPremium>): Promise<Excel.Workbook>;