import type { CellMatrix, Sheet } from '@fortune-sheet/core'; import { type SpreadsheetCellRange } from './work-spreadsheet-ranges'; export declare const DEFAULT_PROTECTION_HINT = "\u6B64\u5DE5\u4F5C\u8868\u5DF2\u53D7\u4FDD\u62A4\u3002\u82E5\u8981\u66F4\u6539\u9501\u5B9A\u7684\u5355\u5143\u683C\uFF0C\u8BF7\u5148\u53D6\u6D88\u5DE5\u4F5C\u8868\u4FDD\u62A4\u3002"; export interface FortuneSheetEditableRange { name: string; sqref: string; hintText?: string; xlsxAttributes?: Record; } export interface FortuneSheetProtectionAuthority { sheet: 0 | 1; selectLockedCells: 0 | 1; selectunLockedCells: 0 | 1; formatCells: 0 | 1; formatColumns: 0 | 1; formatRows: 0 | 1; insertColumns: 0 | 1; insertRows: 0 | 1; insertHyperlinks: 0 | 1; deleteColumns: 0 | 1; deleteRows: 0 | 1; sort: 0 | 1; filter: 0 | 1; usePivotTablereports: 0 | 1; editObjects: 0 | 1; editScenarios: 0 | 1; hintText: string; defaultSheetHintText: string; allowRangeList: FortuneSheetEditableRange[]; cellProtectionRanges: SpreadsheetCellProtectionRange[]; xlsxAttributes?: Record; } export interface SpreadsheetCellProtectionRange { range: SpreadsheetCellRange; locked: boolean; hidden: boolean; } export declare function defaultSheetProtectionAuthority(enabled?: boolean): FortuneSheetProtectionAuthority; export declare function sheetProtectionAuthority(sheet: Sheet): FortuneSheetProtectionAuthority; export declare function normalizeSheetProtectionAuthority(source: unknown): FortuneSheetProtectionAuthority; export declare function importedSheetProtectionAuthority(authority: FortuneSheetProtectionAuthority | undefined, cellProtectionRanges: SpreadsheetCellProtectionRange[]): FortuneSheetProtectionAuthority | undefined; export declare function withSheetProtection(sheet: Sheet, enabled: boolean): Sheet; export declare function withSheetSelectionPermissions(sheet: Sheet, permissions: { selectLockedCells?: boolean; selectUnlockedCells?: boolean; }): Sheet; export declare function withEditableRange(sheet: Sheet, index: number | null, editableRange: FortuneSheetEditableRange): Sheet; export declare function withoutEditableRange(sheet: Sheet, index: number): Sheet; export declare function withCellProtection(sheet: Sheet, ranges: SpreadsheetCellRange[], locked: boolean, hidden?: boolean): Sheet; export declare function applySpreadsheetCellProtectionRanges(data: CellMatrix, ranges: SpreadsheetCellProtectionRange[], rowCount: number, columnCount: number): void; export declare function applyPasswordlessEditableRanges(data: CellMatrix, ranges: FortuneSheetEditableRange[], rowCount: number, columnCount: number): void; export declare function editableRangeRequiresCredentials(range: FortuneSheetEditableRange): boolean; export declare function sheetHasProtectionState(sheet: Sheet): boolean; export declare function protectedSheetCount(sheets: Sheet[]): number; export declare function unlockedCellCount(sheet: Sheet): number; export declare function spreadsheetProtectionKey(sheets: Sheet[]): string; export declare function editableRangeCellCount(ranges: SpreadsheetCellRange[]): number;