///
import { GridSelection, DrawHeaderCallback, InnerGridCell, Rectangle, CompactSelection, DrawCustomCellCallback, GridColumnIcon, Item, CellList, GridMouseGroupHeaderEventArgs, TrailingRowType, ImageWindowLoader } from "./data-grid-types";
import type { HoverValues } from "./animation-manager";
import { MappedGridColumn } from "./data-grid-lib";
import type { SpriteManager } from "./data-grid-sprites";
import type { Theme } from "../common/styles";
import type { GetCellRendererCallback, PrepResult } from "./cells/cell-types";
declare type HoverInfo = readonly [Item, Item];
export interface Highlight {
readonly color: string;
readonly range: Rectangle;
readonly style?: "dashed" | "solid" | "no-outline";
}
interface GroupDetails {
readonly name: string;
readonly icon?: string;
readonly overrideTheme?: Partial;
readonly actions?: readonly {
readonly title: string;
readonly onClick: (e: GridMouseGroupHeaderEventArgs) => void;
readonly icon: GridColumnIcon | string;
}[];
}
export declare type GroupDetailsCallback = (groupName: string) => GroupDetails;
export declare type GetRowThemeCallback = (row: number) => Partial | undefined;
export interface BlitData {
readonly cellXOffset: number;
readonly cellYOffset: number;
readonly translateX: number;
readonly translateY: number;
readonly mustDrawFocusOnHeader: boolean;
readonly lastBuffer: "a" | "b" | undefined;
}
interface DragAndDropState {
src: number;
dest: number;
}
export declare function drawCell(ctx: CanvasRenderingContext2D, row: number, cell: InnerGridCell, col: number, x: number, y: number, w: number, h: number, highlighted: boolean, theme: Theme, drawCustomCell: DrawCustomCellCallback | undefined, imageLoader: ImageWindowLoader, spriteManager: SpriteManager, hoverAmount: number, hoverInfo: HoverInfo | undefined, hyperWrapping: boolean, frameTime: number, lastPrep: PrepResult | undefined, enqueue: ((item: Item) => void) | undefined, getCellRenderer: GetCellRendererCallback): PrepResult | undefined;
export declare function getActionBoundsForGroup(box: Rectangle, actions: NonNullable): readonly Rectangle[];
export declare function pointInRect(rect: Rectangle, x: number, y: number): boolean;
export declare function getHeaderMenuBounds(x: number, y: number, width: number, height: number, isRtl: boolean): Rectangle;
export declare function drawHeader(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, c: MappedGridColumn, selected: boolean, theme: Theme, isHovered: boolean, hasSelectedCell: boolean, hoverAmount: number, spriteManager: SpriteManager, drawHeaderCallback: DrawHeaderCallback | undefined, touchMode: boolean): void;
export interface DrawGridArg {
readonly canvas: HTMLCanvasElement;
readonly headerCanvas: HTMLCanvasElement;
readonly bufferA: HTMLCanvasElement;
readonly bufferB: HTMLCanvasElement;
readonly width: number;
readonly height: number;
readonly cellXOffset: number;
readonly cellYOffset: number;
readonly translateX: number;
readonly translateY: number;
readonly mappedColumns: readonly MappedGridColumn[];
readonly enableGroups: boolean;
readonly freezeColumns: number;
readonly dragAndDropState: DragAndDropState | undefined;
readonly theme: Theme;
readonly headerHeight: number;
readonly groupHeaderHeight: number;
readonly disabledRows: CompactSelection;
readonly rowHeight: number | ((index: number) => number);
readonly verticalBorder: (col: number) => boolean;
readonly isResizing: boolean;
readonly isFocused: boolean;
readonly drawFocus: boolean;
readonly selection: GridSelection;
readonly fillHandle: boolean;
readonly lastRowSticky: TrailingRowType;
readonly hyperWrapping: boolean;
readonly rows: number;
readonly getCellContent: (cell: Item) => InnerGridCell;
readonly getGroupDetails: GroupDetailsCallback;
readonly getRowThemeOverride: GetRowThemeCallback | undefined;
readonly drawCustomCell: DrawCustomCellCallback | undefined;
readonly drawHeaderCallback: DrawHeaderCallback | undefined;
readonly prelightCells: CellList | undefined;
readonly highlightRegions: readonly Highlight[] | undefined;
readonly imageLoader: ImageWindowLoader;
readonly lastBlitData: React.MutableRefObject;
readonly damage: CellList | undefined;
readonly hoverValues: HoverValues;
readonly hoverInfo: HoverInfo | undefined;
readonly spriteManager: SpriteManager;
readonly scrolling: boolean;
readonly touchMode: boolean;
readonly renderStrategy: "single-buffer" | "double-buffer" | "direct";
readonly enqueue: (item: Item) => void;
readonly getCellRenderer: GetCellRendererCallback;
}
export declare function drawGrid(arg: DrawGridArg, lastArg: DrawGridArg | undefined): void;
export {};
//# sourceMappingURL=data-grid-render.d.ts.map