/** @internal */
export interface InjectionPoint {
    /** 1-based line number in the original source after which a line was injected. */
    afterOriginalLine: number;
}
/** @internal */
export interface TransformResult {
    code: string;
    injections: InjectionPoint[];
}
/**
 * Per-method descriptor passed to `injectPlatformDecorator`. Each optional
 * string is a fully-qualified accessor expression that will be written into the
 * decorator call. Absent fields are omitted from the call — that transform is
 * skipped at runtime.
 *
 * The caller (plugin) is responsible for setting or clearing fields based on
 * build-time options; `injectPlatformDecorator` itself is option-unaware.
 * @internal
 */
export interface ExtensionMethodDescriptor {
    outputName: string;
    /** e.g. `__stripe_sdk_ext__.Billing.Sales.Prorations.prepareArgsProrateItems` */
    prepareArgs?: string;
    /** e.g. `__stripe_sdk_ext__.Billing.Sales.Prorations.prepareResultProrateItems` */
    prepareResult?: string;
    /** Reserved for future config-transform wiring. */
    transformConfig?: string;
}
/**
 * Import alias injected into extension source — used as the namespace prefix for transform accessors.
 * @internal
 */
export declare const SDK_EXT_ALIAS = "__stripe_sdk_ext__";
/**
 * Injects `@__platformMethod__` before each named method in the default-export
 * class, and appends the helper function at the end of the file.
 *
 * Returns `{ code: source, injections: [] }` unchanged if `methods` is empty
 * or if the source contains no default-export class.
 * Propagates any parse error to the caller.
 *
 * Each descriptor's optional accessor strings control which transformers appear
 * in the call — absent fields are omitted. The SDK ignores any transformers
 * passed to it until they are implemented in a future SDK version.
 * @internal
 */
export declare function injectPlatformDecorator(source: string, fileName: string, methods: ExtensionMethodDescriptor[]): TransformResult;
//# sourceMappingURL=transform.d.ts.map