type Func = (...args: any[]) => any;
/**
 * 防抖函数
 * @param { Function } func 函数
 * @param { Number } delay 防抖时间
 * @param { Boolean } immediate 是否立即执行
 * @param { Function } resultCallback
 */
export declare function debounce(func: Func, delay?: number, immediate?: boolean, resultCallback?: Func): {
    (this: unknown, ...args: any[]): Promise<unknown>;
    cancel(): void;
};
/**
 * 节流函数
 * @param { Function } func
 * @param { Boolean } interval
 * @param { Object } options
 * leading:初始 trailing:结尾
 */
export declare function throttle(func: Func, interval: number, options?: {
    leading: boolean;
    trailing: boolean;
}): {
    (this: unknown, ...args: any[]): void;
    cancel(): void;
};
/**
 * 驼峰转换下划线
 * @param { String } name
 */
export declare function toLine(name: string): string;
export declare function formatNumber(value: number | string, precision?: number, separator?: string, decimal?: string, prefix?: string, suffix?: string): string;
/**
 * PC / 移动端设备判断
 * 用于路由划分、样式适配等
 */
/** 视口宽度 >= 此值视为 PC 端（px） */
export declare const PC_BREAKPOINT = 768;
export declare function isPC(): boolean;
export declare function isMobile(): boolean;
export type DeviceType = 'pc' | 'mobile';
export declare function getDeviceType(): DeviceType;
export interface HbFileItem_Intf {
    fileName: string;
    previewUrl: string;
    downloadUrl: string;
    attachmentDesc?: string;
    attachmentId?: string;
    uploadDate?: string;
    [key: string]: unknown;
}
/** 可从文件名或完整 URL 解析扩展名（忽略 ?# 后参数） */
export declare const getFileExtensionFromName: (nameOrUrl: string) => string;
/** 是否为可内嵌预览的图片类型（依据文件名或 URL） */
export declare const isAttachmentImagePreview: (fileNameOrUrl: string) => boolean;
/** 供应商附件：仅 PDF 与常见图片支持内嵌预览 */
export declare const isAttachmentPreviewable: (fileName: string) => boolean;
export declare const getAttachmentDownloadUrl: <T extends HbFileItem_Intf>(row: T) => string;
/**
 * @desc 在 `attachmentInfos` 中定位被点击的附件下标。
 * 仅依赖 fileUuid 会在接口缺省、全空或重复时始终命中第一项，需结合列表下标与预览/下载地址兜底。
 */
export declare const resolveAttachmentIndexInList: <T extends HbFileItem_Intf>(list: T[], item: T, options?: {
    /** 列表 v-for 下标，优先使用 */
    preferredIndex?: number;
}) => number;
export {};
//# sourceMappingURL=util.d.ts.map