import type { Cell } from '@fortune-sheet/core'; import { type SpreadsheetConditionalIconSetName } from '../work-spreadsheet-conditional-icons'; import type { WorkSpreadsheetSheet } from '../work-types'; import type { SpreadsheetCellRange } from './spreadsheet-cell-range'; export type SpreadsheetSortAppearanceKind = 'cell-color' | 'font-color' | 'icon'; export type SpreadsheetSortAppearancePosition = 'first' | 'last'; export interface SpreadsheetSortIconTarget { iconSet: SpreadsheetConditionalIconSetName; index: number; } export type SpreadsheetSortAppearanceTarget = { color: string | null; kind: 'cell-color'; } | { color: string | null; kind: 'font-color'; } | { icon: SpreadsheetSortIconTarget; kind: 'icon'; }; export interface SpreadsheetSortCellAppearance { /** Undefined means the cell has a native pattern or gradient without one color. */ cellColor?: string | null; /** Null represents the automatic/default font color. */ fontColor: string | null; icon: SpreadsheetSortIconTarget | null; } export type SpreadsheetSortAppearanceRows = readonly (readonly SpreadsheetSortCellAppearance[])[]; export interface SpreadsheetSortAppearanceField { cellColors: readonly (string | null)[]; fontColors: readonly (string | null)[]; icons: readonly SpreadsheetSortIconTarget[]; index: number; } export declare function createSpreadsheetSortAppearanceRows(sheet: WorkSpreadsheetSheet, range: SpreadsheetCellRange, rows: readonly (readonly (Cell | null)[])[]): SpreadsheetSortAppearanceRows; export declare function createSpreadsheetSortDirectAppearanceRows(rows: readonly (readonly (Cell | null)[])[]): SpreadsheetSortAppearanceRows; export declare function spreadsheetSortAppearanceFields(rows: SpreadsheetSortAppearanceRows, range: SpreadsheetCellRange, orientation: 'top-to-bottom' | 'left-to-right', hasHeader: boolean): readonly SpreadsheetSortAppearanceField[]; export declare function normalizeSpreadsheetSortColor(value: unknown): string | null | undefined; export declare function normalizeSpreadsheetSortIcon(value: unknown): SpreadsheetSortIconTarget | null; export declare function spreadsheetSortAppearanceTargetValue(target: SpreadsheetSortAppearanceTarget): string; export declare function parseSpreadsheetSortAppearanceTargetValue(value: string): SpreadsheetSortAppearanceTarget | null; export declare function spreadsheetSortAppearanceTargetLabel(target: SpreadsheetSortAppearanceTarget): string; export declare function spreadsheetSortAppearanceTargets(field: SpreadsheetSortAppearanceField | undefined, kind: SpreadsheetSortAppearanceKind): readonly SpreadsheetSortAppearanceTarget[]; export declare function spreadsheetSortAppearanceTargetsEqual(left: SpreadsheetSortAppearanceTarget, right: SpreadsheetSortAppearanceTarget): boolean; export declare function spreadsheetSortCellMatchesAppearance(appearance: SpreadsheetSortCellAppearance | undefined, target: SpreadsheetSortAppearanceTarget): boolean;