import { Translations, Translation, PluralizedTranslation } from '../translations'; import { AggregatedColumn, TimeGroupColumn, UnaggregatedColumn } from '../analytics-query'; type AnalyticsTable = { fields: string[]; fieldsWithTranslations: Record>; tableKey: Translation; tableText: Record; }; type FormatterFn = (tableText: Record) => R; type Tuple = [T, U]; interface AnalyticsTableHelpers { getTableName: (tableKey: TableKeys) => Record & { format: (formatter: FormatterFn) => R; getField: (fieldKey: string) => Record & { format: (formatter: FormatterFn) => R; }; }; getTableNameAndField: (key: `${TableKeys}.${string}`) => Tuple, Record>; getTranslationString: (tr: Translation, opts?: { plural?: boolean; }) => string; } type TableKeys = 'clientReportType' | 'command' | 'commandType' | 'device' | 'deviceLink' | 'deviceInstallationUser' | 'deviceType' | 'edge' | 'grid' | 'pinGrid' | 'pinGroupGrid' | 'gridPinGroup' | 'gridPin' | 'issue' | 'issueAssignedUser' | 'measurement' | 'performanceMonth' | 'pin' | 'pinGroup' | 'quantity' | 'report' | 'measurementThreshold' | 'user'; declare function getTranslationString(tr: Translation, opts?: { plural?: boolean; }): string; declare const analyticsTables: Record & AnalyticsTableHelpers; declare function getColumnPlaceholder(column: UnaggregatedColumn | AggregatedColumn | TimeGroupColumn, userLocale: keyof Translations): string; export { AnalyticsTable, analyticsTables, TableKeys, getColumnPlaceholder, getTranslationString, FormatterFn, };