import { ProxifiedModule } from 'magicast';
import * as recast from 'recast';
import x = recast.types;
import t = x.namedTypes;
export declare const metroConfigPath = "metro.config.js";
export declare function patchMetroWithSentryConfig(): Promise<void>;
export declare function patchMetroWithSentryConfigInMemory(mod: ProxifiedModule, showInstructions: () => Promise<void>): Promise<boolean>;
export declare function patchMetroConfigWithSentrySerializer(): Promise<void>;
export declare function unPatchMetroConfig(): Promise<void>;
export declare function removeSentrySerializerFromMetroConfig(program: t.Program): boolean;
export declare function removeSentryRequire(program: t.Program): boolean;
export declare function parseMetroConfig(): Promise<ProxifiedModule>;
export declare function writeMetroConfig(mod: ProxifiedModule): Promise<boolean>;
export declare function addSentrySerializerToMetroConfig(configObj: t.ObjectExpression): boolean;
export declare function addSentrySerializerRequireToMetroConfig(program: t.Program): boolean;
export declare function addSentryMetroRequireToMetroConfig(program: t.Program): boolean;
/**
 * Returns value from `module.exports = value` or `const config = value`
 */
export declare function getMetroConfigObject(program: t.Program): t.ObjectExpression | undefined;
export declare function getModuleExportsAssignmentRight(program: t.Program): t.Identifier | t.CallExpression | t.ObjectExpression | undefined;
