import { Attachment, DataType, Property, PropertyMap, PropertyType } from '@parlor/common/amplify-schema';
import { ModelWithId, RenderAdminSelectorProps } from '@parlor/components/select';
import { SortOrder } from '@parlor/constants/types';
export declare const getFillBarValues: (values: number[]) => any[];
export declare const isEmail: (email: string) => boolean;
export declare const getValueByDataType: (property: Pick<Property, 'BooleanValue' | 'DateValue' | 'NumberValue' | 'TextValue'>, dataType: DataType) => any;
export declare const isRecordOwnerField: (propertyMap: Pick<PropertyMap, 'name' | 'internalFieldName'>) => boolean;
export declare const serializeAccountOwnerName: (name: string) => string;
export declare const findRecordOwnerByRole: (recordOwners: Array<{
    admin?: RenderAdminSelectorProps;
    role?: string;
}>, name: string) => RenderAdminSelectorProps;
export declare const getNearestQuarterHour: (date?: Date) => Date;
export declare const validateURL: (url?: string) => true | "Please enter a valid URL hostname";
export declare const pluralize: (word: string, n: number, suffix?: 's' | 'es') => string;
export declare const wait: (ms: number) => Promise<unknown>;
export declare const parseSearchValue: (value: string | number) => string;
export declare const iLike: (query: string) => {
    iLike: string;
};
export declare const iLikeLogo: () => {
    iLike: string;
};
export declare const isImageByMimeType: (mimeType: string) => boolean;
export declare const isVideoByMimeType: (mimeType: string) => boolean;
export declare const isPdfByMimeType: (mimeType: string) => boolean;
export declare const openLink: (link?: string) => void;
export declare const capitalize: (str?: string) => string;
export declare const DATE_FORMAT = "MMMM dd, yyyy";
export declare function isNumber(num: number): boolean;
export declare function formatBytes(bytes: number, decimals?: number): string;
export declare const formatCommaSeparated: (value?: number) => string;
export default function formatNumberToForLargeMoney(num: number, precision?: number): string | number;
export declare const formatMoney: ({ value, currency, hasFractionDigits, isRoundWhenLarge, }: {
    currency?: 'USD' | 'None';
    hasFractionDigits?: boolean;
    isRoundWhenLarge?: boolean;
    value: string | number;
}) => string;
export declare const formatNumber: ({ value, hasFractionDigits, }: {
    hasFractionDigits?: boolean;
    value: string | number;
}) => string;
export declare const compareByField: <T>(getField: (object: T) => string | number, sortOrder?: SortOrder) => (objectA: T, objectB: T) => 1 | -1 | 0;
export declare function getUniqueItemsByKey<T>(items: T[], key: string): T[];
export declare const getBrowserInfo: () => string;
export declare const getDeviceInfo: () => string;
export declare const extractContent: (htmlString: string) => string;
export declare const toUnix: (date: Date | null) => number;
export declare const unixToDate: (unix: number) => Date;
export declare const parseTime: (value: string, currentDate?: Date) => Date;
export declare const formatDate: (value: string | Date, dateFormat?: string, options?: {
    locale?: Locale;
}) => string;
export declare const formatTime: (date: Date) => string;
export declare function generateTopicKey(topic: {
    inbox?: {
        key?: string;
    };
    topicKey?: number;
}): string;
export declare const reorderData: <T>(list: T[], startIndex: number, endIndex: number) => T[];
export declare const getDifference: <T extends Record<string, any>>(list1: T[], list2: T[]) => T[];
/**
 * It takes an object, filters out all the values that aren't numbers, and then sums the remaining
 * values
 * @param obj - Record<string, unknown>
 * @returns The sum of all the numbers in the object.
 */
export declare const sumNumberValues: (obj: Record<string, unknown>) => number;
/**
 * If the user object has a fullName property, return it. Otherwise, if the user object has a firstName
 * and lastName property, return a string with the firstName and lastName separated by a space.
 * Otherwise, if the user object has a firstName property, return it. Otherwise, if the user object has
 * a lastName property, return it. Otherwise, if the user object has an email property, return it.
 * Otherwise, return an empty string
 *
 * :param user: {
 * :return: A function that takes a user object and returns a string.
 */
export declare const getDisplayName: (user: {
    email?: string;
    firstName?: string;
    fullName?: string;
    lastName?: string;
}) => string;
export declare const compose: (...fns: Function[]) => (arg: any, ...restArgs: any[]) => any;
export declare const getNodes: <T extends ModelWithId>(data: {
    list: {
        edges: Record<"node", T>[];
    };
}) => T[];
export declare function getBase64(file: File): Promise<string>;
export declare const isFile: (item: File | Attachment) => item is File;
export declare const toSearchName: (value?: string) => string;
export declare function debounceAsync<T, Callback extends (...args: never[]) => Promise<T>>(callback: Callback, wait: number): (...args: Parameters<Callback>) => Promise<any>;
export declare function numberWithCommas(x: number): string;
export declare const percentage: (number: number, total: number) => number;
export declare const toFixed: (num?: number, fractionDigits?: number) => number;
export declare const toPercentString: (num: number, decimalCount?: number) => string;
export declare const toPercentStringRounded: (num: number) => string;
export declare function shadeColor(color: string, percent: number): string;
export declare const linearGradient: (color: string, darkerColor: string) => string;
export declare function isElementVisibleInContainer(container: Element, element: Element): boolean;
export declare function formatToLocalTimezone(dateString: string): string;
export declare const objectTypeTitle: (type?: PropertyType) => string;
export declare const getIntegration: (integrationName: any) => any;
export declare const replaceSpacesWith: (str: string, char: any) => string;
