import type { ExpoConfig } from '@expo/config-types'; import type { ConfigPlugin } from '../Plugin.types'; import { BuildPropertiesConfig, ConfigToPropertyRuleType } from '../utils/BuildProperties.types'; import type { PropertiesItem } from './Properties'; /** * Creates a `withGradleProperties` config-plugin based on given config to property mapping rules. * * The factory supports two modes from generic type inference * ```ts * // config-plugin without `props`, it will implicitly use the expo config as source config. * createBuildGradlePropsConfigPlugin(): ConfigPlugin; * * // config-plugin with a parameter `props: CustomType`, it will use the `props` as source config. * createBuildGradlePropsConfigPlugin(): ConfigPlugin; * ``` * * @param configToPropertyRules config to property mapping rules * @param name the config plugin name */ export declare function createBuildGradlePropsConfigPlugin(configToPropertyRules: ConfigToPropertyRuleType[], name?: string): ConfigPlugin; /** * A config-plugin to update `android/gradle.properties` from the `jsEngine` in expo config */ export declare const withJsEngineGradleProps: ConfigPlugin; export declare function updateAndroidBuildPropertiesFromConfig(config: SourceConfigType, gradleProperties: PropertiesItem[], configToPropertyRules: ConfigToPropertyRuleType[]): PropertiesItem[]; export declare function updateAndroidBuildProperty(gradleProperties: PropertiesItem[], name: string, value: string | null | undefined, options?: { removePropWhenValueIsNull?: boolean; }): PropertiesItem[];