UNPKG

4.26 kBTypeScriptView Raw
1import DiagnosticList from './DiagnosticList';
2export declare enum AppType {
3 APP = "app",
4 CLOCKFACE = "clockface"
5}
6export declare const VALID_APP_TYPES: AppType[];
7export declare const MAX_LENGTH_APP_CLUSTER_ID = 64;
8export declare type LocalesConfig = {
9 [locale: string]: {
10 name: string;
11 };
12};
13export interface BaseProjectConfiguration {
14 appType: AppType;
15 appDisplayName: string;
16 appUUID: string;
17 requestedPermissions: string[];
18 i18n: LocalesConfig;
19 defaultLanguage: string;
20 buildTargets: string[];
21 enableProposedAPI?: true;
22 appClusterID?: string;
23 developerID?: string;
24}
25export interface AppProjectConfiguration extends BaseProjectConfiguration {
26 appType: AppType.APP;
27 wipeColor: string;
28 iconFile: string;
29}
30export interface ClockProjectConfiguration extends BaseProjectConfiguration {
31 appType: AppType.CLOCKFACE;
32}
33declare type ProjectConfiguration = AppProjectConfiguration | ClockProjectConfiguration;
34export default ProjectConfiguration;
35export declare const MAX_DISPLAY_NAME_LENGTH = 30;
36export declare enum Locales {
37 'en-US' = "English (US)",
38 'de-DE' = "German",
39 'es-ES' = "Spanish",
40 'fr-FR' = "French",
41 'it-IT' = "Italian",
42 'ja-JP' = "Japanese",
43 'ko-KR' = "Korean",
44 'nl-NL' = "Dutch",
45 'sv-SE' = "Swedish",
46 'zh-CN' = "Chinese (Simplified)",
47 'zh-TW' = "Chinese (Traditional)",
48 'pt-BR' = "Portuguese (Brazillian)",
49 'id-ID' = "Indonesian (Bahasa)",
50 'ro-RO' = "Romanian",
51 'ru-RU' = "Russian",
52 'pl-PL' = "Polish",
53 'cs-CZ' = "Czech"
54}
55export declare enum Permission {
56 ACCESS_ACTIVITY = "access_activity",
57 ACCESS_AOD = "access_aod",
58 ACCESS_APP_CLUSTER_STORAGE = "access_app_cluster_storage",
59 ACCESS_CALENDAR = "access_calendar",
60 ACCESS_EXERCISE = "access_exercise",
61 ACCESS_HEART_RATE = "access_heart_rate",
62 ACCESS_INTERNET = "access_internet",
63 ACCESS_LOCATION = "access_location",
64 ACCESS_SECURE_EXCHANGE = "access_secure_exchange",
65 ACCESS_USER_PROFILE = "access_user_profile",
66 FITBIT_TOKEN = "fitbit_token",
67 RUN_BACKGROUND = "run_background",
68 EXTERNAL_APP_COMMUNICATION = "external_app_communication",
69 MOBILE_NOTIFICATIONS = "mobile_notifications"
70}
71export declare function getAllPermissionTypes(options: {
72 enableProposedAPI?: boolean;
73 includeRestrictedPermissions?: boolean;
74}): ({
75 key: Permission;
76 name: string;
77 description: string;
78 sdkVersion?: undefined;
79} | {
80 key: Permission;
81 name: string;
82 description: string;
83 sdkVersion: string;
84})[];
85export declare function normalizeLocales(locales: LocalesConfig): LocalesConfig;
86export declare function normalizeProjectConfig(config: any, defaults?: Partial<AppProjectConfiguration | ClockProjectConfiguration>): ProjectConfiguration;
87export declare function validateAppType(config: ProjectConfiguration): DiagnosticList;
88export declare function validateDisplayName(name: string): string | true;
89export declare function validateProjectDisplayName(config: ProjectConfiguration): DiagnosticList;
90export declare function validateWipeColor(config: ProjectConfiguration): DiagnosticList;
91export declare function validateRequestedPermissions({ enableProposedAPI, requestedPermissions, }: ProjectConfiguration): DiagnosticList;
92export declare function validateBuildTarget({ buildTargets }: ProjectConfiguration, { hasNativeComponents }: {
93 hasNativeComponents: boolean;
94}): DiagnosticList;
95export declare function validateLocaleDisplayName({ i18n }: ProjectConfiguration, localeKey: keyof typeof Locales): DiagnosticList;
96export declare function validateLocaleDisplayNames(config: ProjectConfiguration): DiagnosticList;
97export declare function validateSupportedLocales({ i18n }: ProjectConfiguration): DiagnosticList;
98export declare function validateAppUUID({ appUUID }: ProjectConfiguration): DiagnosticList;
99export declare function validateDefaultLanguage(config: ProjectConfiguration): DiagnosticList;
100export declare function validateStorageGroup(config: ProjectConfiguration): DiagnosticList;
101interface ValidationOptions {
102 hasNativeComponents?: boolean;
103}
104export declare function validate(config: ProjectConfiguration, options?: ValidationOptions): DiagnosticList;