import type { ExtensionType } from './types'; /** * Static, per-type facts declared for every extension type. * These describe what a type *is*, never what a specific target instance wants. */ export interface BaseTypeCharacteristics { requiresCode: boolean; targetType: 'application' | 'app_extension'; embedType: 'foundation-extension' | 'extensionkit-extension' | 'app-clip' | 'watch-content' | 'watch-extension' | 'none'; frameworks: string[]; productType: string; extensionPointIdentifier: string; defaultUsesAppGroups: boolean; requiresEntitlements: boolean; basePlist: Record; supportsActivationRules: boolean; activationRulesLocation: 'direct' | 'attributes' | 'none'; } /** * Behavioural flags derived from the sets below. Flags only — never value blobs, * so consumers branch on capabilities instead of hard-coded type checks. */ export type AndroidComponent = 'none' | 'widget' | 'activity' | 'service' | 'provider' | 'ime' | 'vpn' | 'wear'; export type AndroidBucket = 'strong' | 'partial' | 'apple-only'; export interface TypeCharacteristicFlags { isReactNativeNative: boolean; isReactNativeWeb: boolean; needsIsolatedSearchPaths: boolean; /** Example host track for agent-device / examples/. */ rnExample: 'dual' | 'native-only' | 'rn-only'; /** Android host component family (API-ceiling dual ledger). */ androidComponent: AndroidComponent; /** Strong dual / high-value partial / Apple-only. */ androidBucket: AndroidBucket; /** Optional partial note when androidBucket is partial. */ androidPartial?: string; } export type TypeCharacteristics = BaseTypeCharacteristics & TypeCharacteristicFlags; /** * Every extension type, in declaration order. */ export declare const EXTENSION_TYPES: ExtensionType[]; /** * Centralized type characteristics for all extension types. * Use this map to avoid scattered type checks throughout the codebase. */ export declare const TYPE_CHARACTERISTICS: Record; export declare function getFrameworksForType(type: ExtensionType): string[]; export declare function productTypeForType(type: ExtensionType): string; export declare const EXTENSION_POINT_IDENTIFIERS: Record; export declare const SHOULD_USE_APP_GROUPS_BY_DEFAULT: Record; //# sourceMappingURL=characteristics.d.ts.map