import DiagnosticList from './DiagnosticList'; export declare enum AppType { APP = "app", CLOCKFACE = "clockface", SERVICE = "service" } export interface Tile { name: string; uuid: string; buildTargets?: string[]; } export declare const VALID_APP_TYPES: AppType[]; export declare const MAX_LENGTH_APP_CLUSTER_ID = 64; export declare type LocalesConfig = { [locale: string]: { name: string; }; }; export interface BaseProjectConfiguration { appType: AppType; appDisplayName: string; appUUID: string; requestedPermissions: string[]; i18n: LocalesConfig; defaultLanguage: string; buildTargets: string[]; enableProposedAPI?: true; appClusterID?: string[]; developerID?: string; companionDefaultWakeInterval?: number; heapSize?: number; } export interface AppProjectConfiguration extends BaseProjectConfiguration { appType: AppType.APP; wipeColor: string; iconFile: string; tiles?: Tile[]; } export interface ClockProjectConfiguration extends BaseProjectConfiguration { appType: AppType.CLOCKFACE; } export interface ServiceProjectConfiguration extends BaseProjectConfiguration { appType: AppType.SERVICE; } export declare type ProjectConfiguration = AppProjectConfiguration | ClockProjectConfiguration | ServiceProjectConfiguration; export default ProjectConfiguration; export declare const MAX_DISPLAY_NAME_LENGTH = 30; export declare enum Locales { 'en-US' = "English (US)", 'de-DE' = "German", 'es-ES' = "Spanish", 'fr-FR' = "French", 'it-IT' = "Italian", 'ja-JP' = "Japanese", 'ko-KR' = "Korean", 'nl-NL' = "Dutch", 'sv-SE' = "Swedish", 'zh-CN' = "Chinese (Simplified)", 'zh-TW' = "Chinese (Traditional)", 'pt-BR' = "Portuguese (Brazillian)", 'id-ID' = "Indonesian (Bahasa)", 'ro-RO' = "Romanian", 'ru-RU' = "Russian", 'pl-PL' = "Polish", 'cs-CZ' = "Czech", 'nb-NO' = "Norwegian (Bokm\u00E5l)" } export declare enum Permission { ACCESS_ACTIVITY = "access_activity", ACCESS_AOD = "access_aod", ACCESS_APP_CLUSTER_STORAGE = "access_app_cluster_storage", ACCESS_CALENDAR = "access_calendar", ACCESS_EXERCISE = "access_exercise", ACCESS_HEART_RATE = "access_heart_rate", ACCESS_INTERNET = "access_internet", ACCESS_LOCATION = "access_location", ACCESS_SECURE_EXCHANGE = "access_secure_exchange", ACCESS_SLEEP = "access_sleep", ACCESS_USER_PROFILE = "access_user_profile", DIAGNOSTIC_INFO = "diagnostic_info", FITBIT_INTERNAL = "fitbit_internal", FITBIT_TOKEN = "fitbit_token", RUN_BACKGROUND = "run_background", EXTERNAL_APP_COMMUNICATION = "external_app_communication", MOBILE_NOTIFICATIONS = "mobile_notifications", DEVICE_NOTIFICATIONS = "device_notifications" } export declare function getAllPermissionTypes(options: { enableProposedAPI?: boolean; includeRestrictedPermissions?: boolean; }): ({ key: Permission; name: string; description: string; sdkVersion?: undefined; } | { key: Permission; name: string; description: string; sdkVersion: string; })[]; export declare function normalizeLocales(locales: LocalesConfig): LocalesConfig; export declare function normalizeProjectConfig(config: any, defaults?: Partial): ProjectConfiguration; export declare function validateAppType(config: ProjectConfiguration): DiagnosticList; export declare function validateDisplayName(name: string): string | true; export declare function validateProjectDisplayName(config: ProjectConfiguration): DiagnosticList; export declare function validateWipeColor(config: ProjectConfiguration): DiagnosticList; export declare function validateRequestedPermissions({ enableProposedAPI, requestedPermissions, }: ProjectConfiguration): DiagnosticList; export declare function validateBuildTarget({ buildTargets }: ProjectConfiguration, { hasNativeComponents }: { hasNativeComponents: boolean; }): DiagnosticList; export declare function validateLocaleDisplayName({ i18n }: ProjectConfiguration, localeKey: keyof typeof Locales): DiagnosticList; export declare function validateLocaleDisplayNames(config: ProjectConfiguration): DiagnosticList; export declare function validateSupportedLocales({ i18n }: ProjectConfiguration): DiagnosticList; export declare function validateAppUUID({ appUUID }: ProjectConfiguration): DiagnosticList; export declare function validateDefaultLanguage(config: ProjectConfiguration): DiagnosticList; export declare function validateStorageGroup(config: ProjectConfiguration): DiagnosticList; export declare function validateCompanionDefaultWakeInterval(config: ProjectConfiguration): DiagnosticList; export declare function validateHeapSize(config: ProjectConfiguration): DiagnosticList; export declare function validateTileComponentAppType(config: ProjectConfiguration): DiagnosticList; export declare function validateTileBuildTarget(tile: Tile, config: AppProjectConfiguration): DiagnosticList; export declare function validateTileUUID(tile: Tile, config: AppProjectConfiguration): DiagnosticList; export declare function validateTileNativeComponent(hasNativeComponents: boolean): DiagnosticList; export declare function validateTileName(tile: Tile, config: AppProjectConfiguration): DiagnosticList; interface ValidationOptions { hasNativeComponents?: boolean; } export declare function validate(config: ProjectConfiguration, options?: ValidationOptions): DiagnosticList;