interface LocalSettingsBaseUI {
    supportRTL: boolean;
    supportUnicode: boolean | UnicodeFeatures[];
    lineHeightAdjust: number;
    customizationsBaseAPI: number | number[];
    customizationsOverwritePrivilege: boolean;
    removeDeprecatedAttributes: boolean | string[];
    removeUnusedResourceViewId: boolean;
    preferMaterialDesign: boolean | MaterialThemes;
    idNamingStyle: "android" | "html" | ObjectMap<string | [string, number, number?, NodeListOf<Node>?] | FunctionSelf<unknown, string>>;
}

interface LocalSettingsUI extends LocalSettingsBaseUI, Pick<Required<UserResourceSettingsUI>, "defaultIntlLocales"> {
    colorScheme: ColorScheme;
    useSystemColors: boolean;
    floatPrecision: number;
}

interface CacheValueUI {
    support?: SupportUI;
    translatable?: boolean;
}

interface CacheStateUI<T> {
    alignedWithX?: T;
    alignedWithY?: T;
}

interface SupportUI {
    maxDimension: boolean;
}

interface Constraint<T> {
    horizontal: boolean;
    vertical: boolean;
    current: ObjectMap<{ documentId: string; horizontal: boolean }>;
    flow?: {
        children: T[];
        horizontal: boolean;
        style: string;
        align: string;
        bias?: number;
    };
    grid?: {
        children: T[][];
        rows: number;
        columns: number;
        align: string;
    };
    barrier?: StringMap;
    guideline?: RecursiveMap<RecursiveMap<string> | undefined>;
}

interface Flexbox {
    weight?: number;
}

type UnicodeFeatures = "utf-16" | "emoji";