runtime.d.ts 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import { Path } from '@intlify/message-resolver';
  2. export declare type CoreMissingType = 'translate' | 'datetime format' | 'number format';
  3. export declare function createMessageContext<T = string, N = {}>(options?: MessageContextOptions<T, N>): MessageContext<T>;
  4. export declare const DEFAULT_MESSAGE_DATA_TYPE = "text";
  5. declare type ExtractToStringFunction<T> = T[ExtractToStringKey<T>];
  6. declare type ExtractToStringKey<T> = Extract<keyof T, 'toString'>;
  7. /** @VueI18nGeneral */
  8. export declare type FallbackLocale = Locale | Locale[] | {
  9. [locale in string]: Locale[];
  10. } | false;
  11. /** @VueI18nGeneral */
  12. export declare type LinkedModifiers<T = string> = {
  13. [key: string]: LinkedModify<T>;
  14. };
  15. export declare type LinkedModify<T = string> = (value: T) => MessageType<T>;
  16. /** @VueI18nGeneral */
  17. export declare type Locale = string;
  18. export declare interface MessageContext<T = string> {
  19. list(index: number): unknown;
  20. named(key: string): unknown;
  21. plural(messages: T[]): T;
  22. linked(key: Path, modifier?: string): MessageType<T>;
  23. message(key: Path): MessageFunction<T>;
  24. type: string;
  25. interpolate: MessageInterpolate<T>;
  26. normalize: MessageNormalize<T>;
  27. }
  28. export declare interface MessageContextOptions<T = string, N = {}> {
  29. parent?: MessageContext<T>;
  30. locale?: string;
  31. list?: unknown[];
  32. named?: NamedValue<N>;
  33. modifiers?: LinkedModifiers<T>;
  34. pluralIndex?: number;
  35. pluralRules?: PluralizationRules;
  36. messages?: MessageFunctions<T> | MessageResolveFunction<T>;
  37. processor?: MessageProcessor<T>;
  38. }
  39. export declare type MessageFunction<T = string> = MessageFunctionCallable | MessageFunctionInternal<T>;
  40. export declare type MessageFunctionCallable = <T = string>(ctx: MessageContext<T>) => MessageType<T>;
  41. export declare type MessageFunctionInternal<T = string> = {
  42. (ctx: MessageContext<T>): MessageType<T>;
  43. key?: string;
  44. locale?: string;
  45. source?: string;
  46. };
  47. export declare type MessageFunctions<T = string> = Record<string, MessageFunction<T>>;
  48. export declare type MessageInterpolate<T = string> = (val: unknown) => MessageType<T>;
  49. export declare type MessageNormalize<T = string> = (values: MessageType<string | T>[]) => MessageType<T | T[]>;
  50. export declare interface MessageProcessor<T = string> {
  51. type?: string;
  52. interpolate?: MessageInterpolate<T>;
  53. normalize?: MessageNormalize<T>;
  54. }
  55. export declare type MessageResolveFunction<T = string> = (key: string) => MessageFunction<T>;
  56. export declare type MessageType<T = string> = T extends string ? string : StringConvertable<T>;
  57. /** @VueI18nGeneral */
  58. export declare type NamedValue<T = {}> = T & Record<string, unknown>;
  59. export declare type PluralizationProps = {
  60. n?: number;
  61. count?: number;
  62. };
  63. export declare type PluralizationRule = (choice: number, choicesLength: number, orgRule?: PluralizationRule) => number;
  64. /** @VueI18nGeneral */
  65. export declare type PluralizationRules = {
  66. [locale: string]: PluralizationRule;
  67. };
  68. declare type StringConvertable<T> = ExtractToStringKey<T> extends never ? unknown : ExtractToStringFunction<T> extends (...args: any) => string ? T : unknown;
  69. export { }