import { ConfigPlugin, ExportedConfig, ExportedConfigWithProps, ModPlatform } from '../Plugin.types'; import { BaseModOptions } from './withMod'; export declare type ForwardedBaseModOptions = Partial>; export declare type BaseModProviderMethods = { getFilePath: (config: ExportedConfigWithProps, props: Props) => Promise | string; read: (filePath: string, config: ExportedConfigWithProps, props: Props) => Promise | ModType; write: (filePath: string, config: ExportedConfigWithProps, props: Props) => Promise | void; /** * If the mod supports introspection, and avoids making any filesystem modifications during compilation. * By enabling, this mod, and all of its descendants will be run in introspection mode. * This should only be used for static files like JSON or XML, and not for application files that require regexes, * or complex static files that require other files to be generated like Xcode `.pbxproj`. */ isIntrospective?: boolean; }; export declare type CreateBaseModProps = { methodName: string; platform: ModPlatform; modName: string; } & BaseModProviderMethods; export declare function createBaseMod({ methodName, platform, modName, getFilePath, read, write, isIntrospective, }: CreateBaseModProps): ConfigPlugin; export declare function assertModResults(results: any, platformName: string, modName: string): any; export declare function createPlatformBaseMod({ modName, ...props }: Omit, 'methodName'>): ConfigPlugin; /** A TS wrapper for creating provides */ export declare function provider(props: BaseModProviderMethods): BaseModProviderMethods; /** Plugin to create and append base mods from file providers */ export declare function withGeneratedBaseMods(config: ExportedConfig, { platform, providers, ...props }: ForwardedBaseModOptions & { platform: ModPlatform; providers: Partial>>; }): ExportedConfig;