import type { WorkSpreadsheetContent, WorkSpreadsheetDataValidationErrorStyle, WorkSpreadsheetDataValidationItem, WorkSpreadsheetSheet } from '../work-types'; import { type SpreadsheetCellRange } from './spreadsheet-cell-range'; export declare const MAX_SPREADSHEET_DATA_VALIDATION_CELLS = 10000; export type SpreadsheetDataValidationType = 'custom' | 'date' | 'dropdown' | 'number' | 'number_integer' | 'text_length'; export type SpreadsheetDataValidationOperator = 'between' | 'equal' | 'greaterOrEqualTo' | 'lessThan' | 'lessThanOrEqualTo' | 'moreThanThe' | 'noEarlierThan' | 'noLaterThan' | 'notBetween' | 'notEqualTo' | 'earlierThan' | 'laterThan'; export interface SpreadsheetDataValidationDialogValue { allowBlank: boolean; errorMessage: string; errorStyle: WorkSpreadsheetDataValidationErrorStyle; errorTitle: string; hintShow: boolean; hintTitle: string; hintValue: string; prohibitInput: boolean; showDropdownArrow: boolean; type: SpreadsheetDataValidationType; type2: SpreadsheetDataValidationOperator | ''; value1: string; value2: string; } export interface SpreadsheetDataValidationTarget { activeCell: { row: number; column: number; }; ranges: readonly SpreadsheetCellRange[]; sheetId: string; } export interface SpreadsheetDataValidationRequest extends SpreadsheetDataValidationTarget { value: SpreadsheetDataValidationDialogValue; } export interface SpreadsheetDataValidationDialogSource extends SpreadsheetDataValidationTarget { hasValidation: boolean; mixed: boolean; rangeReference: string; sheetName: string; value: SpreadsheetDataValidationDialogValue; } export type SpreadsheetDataValidationResult = { item: WorkSpreadsheetDataValidationItem; ok: true; ranges: SpreadsheetCellRange[]; sheet: WorkSpreadsheetSheet; } | { code: SpreadsheetDataValidationErrorCode; message: string; ok: false; }; export type SpreadsheetDataValidationErrorCode = 'invalid-custom-formula' | 'invalid-date' | 'invalid-list-formula' | 'invalid-list-source' | 'invalid-number' | 'invalid-operator' | 'invalid-range' | 'invalid-text-length' | 'missing-value' | 'multiple-list-columns' | 'out-of-bounds' | 'protected-range' | 'range-too-large' | 'sheet-not-found' | 'value-order'; export declare function spreadsheetDataValidationOperators(type: SpreadsheetDataValidationType): readonly SpreadsheetDataValidationOperator[]; export declare function createSpreadsheetDataValidationDialogSource(content: WorkSpreadsheetContent, target: SpreadsheetDataValidationTarget): SpreadsheetDataValidationDialogSource | null; export declare function validateSpreadsheetDataValidationRequest(content: WorkSpreadsheetContent, request: SpreadsheetDataValidationRequest): SpreadsheetDataValidationResult; export declare function applySpreadsheetDataValidation(content: WorkSpreadsheetContent, request: SpreadsheetDataValidationRequest): WorkSpreadsheetContent | null; export declare function removeSpreadsheetDataValidation(content: WorkSpreadsheetContent, target: SpreadsheetDataValidationTarget): WorkSpreadsheetContent | null; export declare function canRemoveSpreadsheetDataValidation(content: WorkSpreadsheetContent, target: SpreadsheetDataValidationTarget): boolean; export declare function spreadsheetDataValidationFailureMessage(content: WorkSpreadsheetContent, request: SpreadsheetDataValidationRequest): string | null; export declare function spreadsheetDataValidationItemAt(sheet: WorkSpreadsheetSheet, row: number, column: number): WorkSpreadsheetDataValidationItem | null;