import { types } from '@babel/core';
export type ReplaceTo = string | ((accessedProperty: string, matchedIdentifier: string) => string) | null;
type ReplaceArgs = {
    code: string;
    from: string | string[];
    to: ReplaceTo;
};
export type NodeMap = {
    from: types.Node;
    condition?: (path: babel.NodePath<types.Node>) => boolean;
    to: types.Node;
};
/**
 * @deprecated Use `replaceNodes` instead.
 */
export declare const replaceIdentifiers: ({ code, from, to }: ReplaceArgs) => string;
export declare const replaceStateIdentifier: (to: ReplaceArgs['to']) => (code: string) => string;
export declare const replacePropsIdentifier: (to: ReplaceArgs['to']) => (code: string) => string;
/**
 * Replaces all instances of a Babel AST Node with a new Node within a code string.
 * Uses `generate()` to convert the Node to a string and compare them.
 */
export declare const replaceNodes: ({ code, nodeMaps }: {
    code: string;
    nodeMaps: NodeMap[];
}) => string;
export {};
