interface GradientTemplate {
    type: string;
    positioning: boolean;
    item?: { color: string; offset: string }[];
    startColor?: string;
    endColor?: string;
    centerColor?: string;
    angle?: string;
    startX?: string;
    startY?: string;
    endX?: string;
    endY?: string;
    centerX?: string;
    centerY?: string;
    gradientRadius?: string;
    tileMode?: string;
}

interface FontProvider {
    authority: string;
    package: string;
    certs: string[];
    fonts: FontProviderFonts;
}

interface FontProviderFontsStyle {
    normal?: string[];
    italic?: string[];
    width?: string;
}

interface DependencyRuntime extends DependencyNameMap {
    "appcompat": DependencyVersion;
    "vectordrawable": DependencyVersion;
    "lifecycle-viewmodel": DependencyVersion;
}

interface WebFont {
    family: string;
    variants: string[];
    subsets: string[];
    version: string;
    lastModified: string;
    files: string[];
    category: string;
    kind: string;
}

interface ManifestData {
    package?: string;
    application?: {
        label?: string;
        supportsRtl?: boolean;
        theme?: string;
        metaData?: { name?: string; resource?: string; value?: string }[];
        activity?: ObjectMap<{
            layout?: {
                defaultWidth?: string;
                defaultHeight?: string;
                minWidth?: string;
                minHeight?: string;
                gravity?: string;
            };
        }>;
        activityName?: string;
        fontProvider?: string;
    } & PlainObject;
}

interface ResourceStoredMap {
    styles?: StoredStyles;
    themes?: StoredThemes;
    dimens?: StoredDimens;
    drawables?: StoredDrawables;
    animators?: StoredAnimators;
    integers?: StoredIntegers;
    fractions?: StoredFractions;
    system_colors?: Map<string, string>;
}

type StoredStyles = Map<string, StyleAttribute>;
type StoredThemes = Map<string, Map<string, ThemeAttribute>>;
type StoredDimens = Map<string, string>;
type StoredDrawables = Map<string, string>;
type StoredAnimators = Map<string, string>;
type StoredIntegers = Map<string, string>;
type StoredFractions = Map<string, string>;
type FontProviderFonts = ObjectMap<FontProviderFontsStyle> & { kind?: string };
type FontProviderInit = [string, string, string[], FontProviderFonts, boolean?];
type ResourceDirectoryAttr = keyof ControllerSettingsDirectoryUI;
type ResourceQualifierMap = { suffix?: string } & { [K in keyof ControllerSettingsDirectoryUI]?: string | boolean };