import type { FieldType, LocaleService } from '@univerjs/core';
import type { BaseCheckboxIcon, BaseRatingIcon } from '../../../render/canvas-draw-command';
import type { IBasePeopleOption } from '../../panels/field-config/FieldConfigPanel';
import type { IBaseCellEditorOption, IBaseLinkCellValue } from '../cell/editor-types';
import type { IRecordDetailFieldItem } from './RecordDetailPanel';
export declare const DETAIL_INVALID_VALUE: unique symbol;
export declare const DETAIL_PROGRESS_WIDTH = 184;
export declare const DETAIL_PROGRESS_HEIGHT = 18;
export declare const DETAIL_ATTACHMENT_COLUMNS = 3;
export declare const DETAIL_ATTACHMENT_TILE_HEIGHT = 78;
export declare const DETAIL_ATTACHMENT_GAP = 8;
export declare function isInlineInputField(type: FieldType): boolean;
export declare function isPopupDetailField(type: FieldType): boolean;
export declare function isReadonlyDetailField(field: IRecordDetailFieldItem): boolean;
export declare function normalizeDetailEditorValue(field: IRecordDetailFieldItem): unknown;
export declare function normalizeDetailCommitValue(field: IRecordDetailFieldItem, value: unknown): unknown;
export declare function detailValuesEqual(left: unknown, right: unknown): boolean;
export declare function detailOptions(field: IRecordDetailFieldItem, providerOptions?: IBasePeopleOption[]): IBaseCellEditorOption[];
export declare function detailOptionColor(field: IRecordDetailFieldItem, option: string, index: number): string;
export declare function normalizeDetailLinkValue(value: unknown): IBaseLinkCellValue;
export declare function detailPlaceholder(type: FieldType, localeService: LocaleService): string;
export declare function detailLabel(field: IRecordDetailFieldItem, value: string, providerOptions?: IBasePeopleOption[]): string;
export declare function getDetailProgressMetrics(value: unknown, config?: Record<string, unknown>): {
    layout: {
        trackX: number;
        trackWidth: number;
        fillWidth: number;
        labelX: number;
        labelWidth: number;
        label: string;
        trackY: number;
        trackHeight: number;
        rawValue: number;
        start: number;
        end: number;
    };
    label: string;
    color: string;
    min: number;
    max: number;
};
export declare function getDetailProgressLayout(value: unknown, config?: Record<string, unknown>): {
    trackX: number;
    trackWidth: number;
    fillWidth: number;
    labelX: number;
    labelWidth: number;
    label: string;
    trackY: number;
    trackHeight: number;
    rawValue: number;
    start: number;
    end: number;
};
export declare function getDetailRatingMetrics(value: unknown, config?: Record<string, unknown>): {
    count: number;
    value: number;
    icon: BaseRatingIcon;
    activeFill: string;
};
export declare function getDetailRatingVisualMetrics(count: number, editable: boolean): {
    iconSize: number;
    buttonSize: number;
    gap: number;
};
export declare function detailConfigNumber(config: Record<string, unknown> | undefined, key: string, fallback: number): number;
export declare function detailConfigString(config: Record<string, unknown> | undefined, key: string, fallback: string): string;
export declare function detailCheckboxColor(config?: Record<string, unknown>): string;
export declare function detailCheckboxIcon(config?: Record<string, unknown>): BaseCheckboxIcon;
export declare function detailRatingIcon(config?: Record<string, unknown>): BaseRatingIcon;
export declare function detailRatingFill(icon: BaseRatingIcon): string;
export declare function normalizeDisplayLinkUrl(value: string): string;
export declare function detailAttachmentVisibleRows(value: unknown): number;
export declare function detailAttachmentExt(name: string): string;
export declare function textOf(value: unknown): string;
export declare function asList(value: unknown): string[];
export declare function initials(name: string): string;
export declare function multiFill(index: number): string;
export declare function formatDate(value: unknown, config?: Record<string, unknown>): string;
export declare function normalizeDetailDateEditorMs(value: unknown): number;
export declare function formatNumber(value: unknown): string;
export declare function formatCurrency(value: unknown): string;
