import type { WorkSpreadsheetContent } from '../work-types'; export type SpreadsheetHyperlinkType = 'webpage' | 'cellrange' | 'sheet'; export interface SpreadsheetHyperlinkTarget { linkType: SpreadsheetHyperlinkType; linkAddress: string; } export interface SpreadsheetHyperlinkCell { sheetId: string; row: number; column: number; } export interface SpreadsheetHyperlinkRequest extends SpreadsheetHyperlinkCell { linkType: SpreadsheetHyperlinkType; linkAddress: string; displayText?: string; } export type SpreadsheetHyperlinkDialogValue = Pick; export type SpreadsheetHyperlinkErrorCode = 'empty-address' | 'formula-display-text' | 'invalid-cell-range' | 'invalid-display-text' | 'invalid-web-address' | 'pivot-cell' | 'protected-cell' | 'source-out-of-bounds' | 'source-sheet-not-found' | 'target-out-of-bounds' | 'target-sheet-hidden' | 'target-sheet-not-found' | 'unsupported-link-type'; export type SpreadsheetHyperlinkValidation = { ok: true; target: SpreadsheetHyperlinkTarget; displayText?: string; } | { ok: false; code: SpreadsheetHyperlinkErrorCode; message: string; }; export interface SpreadsheetHyperlinkDialogSource extends SpreadsheetHyperlinkCell { sheetName: string; cellReference: string; displayText: string; displayTextEditable: boolean; hasHyperlink: boolean; link: SpreadsheetHyperlinkTarget | null; sheetOptions: Array<{ id: string; name: string; }>; } export declare function validateSpreadsheetHyperlinkRequest(content: WorkSpreadsheetContent, request: SpreadsheetHyperlinkRequest): SpreadsheetHyperlinkValidation; export declare function applySpreadsheetHyperlink(content: WorkSpreadsheetContent, request: SpreadsheetHyperlinkRequest): WorkSpreadsheetContent | null; export declare function removeSpreadsheetHyperlink(content: WorkSpreadsheetContent, target: SpreadsheetHyperlinkCell): WorkSpreadsheetContent | null; export declare function canRemoveSpreadsheetHyperlink(content: WorkSpreadsheetContent, target: SpreadsheetHyperlinkCell): boolean; export declare function createSpreadsheetHyperlinkDialogSource(content: WorkSpreadsheetContent, target: SpreadsheetHyperlinkCell): SpreadsheetHyperlinkDialogSource | null;