import type { File, ImportDeclaration, JSXAttribute, JSXElement, Node } from '@babel/types'; export type SourceEdit = { end: number; replacement: string; start: number; }; export type ImportSnapshot = { declaration: ImportDeclaration; specifiers: NonNullable; }; export declare const getJsxStringAttributeValueSourceEdit: ({ attribute, input, newValue, }: { attribute: JSXAttribute; input: string; newValue: string; }) => SourceEdit; export declare const getJsxElementSourceForInsertion: ({ element, input, }: { element: JSXElement; input: string; }) => string; export declare const getAdjacentJsxInsertionSourceEdit: ({ input, insertion, position, target, }: { input: string; insertion: string; position: "after" | "before"; target: JSXElement; }) => SourceEdit; export declare const getNodeEndIncludingSameLineComments: ({ input, node, }: { input: string; node: Node; }) => number | null; export declare const captureImportSnapshots: (ast: File) => ImportSnapshot[]; export declare const getInsertImportSourceEdits: ({ ast, input, prettierConfigOverride, snapshots, }: { ast: File; input: string; prettierConfigOverride: Record | null; snapshots: ImportSnapshot[]; }) => SourceEdit[]; export declare const applySourceEdits: ({ edits, input, }: { edits: SourceEdit[]; input: string; }) => string;