import type { Ref } from "vue"; import { type DataGridFillBehavior } from "../composables/dataGridFillBehavior"; import { type DataGridCopyRange } from "../advanced"; import type { DataGridAppMode } from "./useDataGridAppControls"; export interface DataGridAppAppliedFillSession { baseRange: DataGridCopyRange; previewRange: DataGridCopyRange; behavior: DataGridFillBehavior; allowBehaviorToggle: boolean; } type DataGridAppServerFillInvalidation = { kind: "range"; range: DataGridCopyRange; reason?: string; } | { kind: "rows"; rowIds: readonly (string | number)[]; reason?: string; }; type DataGridAppServerFillRefreshPayload = DataGridCopyRange | DataGridAppServerFillInvalidation | null; export interface UseDataGridAppFillOptions { mode: Ref; viewportRowStart: Ref; isFillDragging: Ref; fillBaseRange: Ref; fillPreviewRange: Ref; activeFillBehavior: Ref; resolveSelectionRange: () => DataGridCopyRange | null; rangesEqual: (left: DataGridCopyRange | null, right: DataGridCopyRange | null) => boolean; buildFillMatrixFromRange: (range: DataGridCopyRange) => string[][]; shouldUseServerFill?: (baseRange: DataGridCopyRange, previewRange: DataGridCopyRange, behavior: DataGridFillBehavior) => boolean; commitServerFill?: (request: { baseRange: DataGridCopyRange; previewRange: DataGridCopyRange; behavior: DataGridFillBehavior; }) => Promise<{ operationId: string; revision?: string | number | null; affectedRange?: DataGridCopyRange | null; invalidation?: DataGridAppServerFillInvalidation | null; } | null>; applyClipboardEdits: (range: DataGridCopyRange, matrix: string[][], options?: { recordHistory?: boolean; recordHistoryLabel?: string; }) => number | Promise; isCellEditableAt: (rowIndex: number, columnIndex: number) => boolean; setLastAppliedFillSession: (session: DataGridAppAppliedFillSession | null) => void; setLastServerFillSession?: (session: { operationId: string; revision?: string | number | null; affectedRange?: DataGridCopyRange | null; behavior: DataGridFillBehavior; } | null) => void; applyCommittedFillSelection?: (range: DataGridCopyRange) => void; syncServerFillViewport?: (payload?: DataGridAppServerFillRefreshPayload) => void | Promise; syncViewport: () => void; } export interface UseDataGridAppFillResult { applyFillPreview: (behavior?: DataGridFillBehavior) => boolean | Promise; applyFillRange: (baseRange: DataGridCopyRange, previewRange: DataGridCopyRange, behavior?: DataGridFillBehavior) => boolean | Promise; isCellInFillPreview: (rowOffset: number, columnIndex: number) => boolean; isFillHandleCell: (rowOffset: number, columnIndex: number) => boolean; } export declare function useDataGridAppFill(options: UseDataGridAppFillOptions): UseDataGridAppFillResult; export {}; //# sourceMappingURL=useDataGridAppFill.d.ts.map