/** Shared helpers used by multiple package install scripts. */
import type { SourceFile } from 'ts-morph';
import type { PackageInstallerContext } from './package-installer.js';
/** Declare a package module in `app.module.ts`: adds the import and registers it in `@Module({ imports })`. */
export declare function declareBackPackageModule(ctx: PackageInstallerContext, moduleName: string, importPath: string): void;
/** Add `ScheduleModule.forRoot()` to `app.module.ts` imports if not already present. */
export declare function addScheduleModule(ctx: PackageInstallerContext): void;
/** Regenerate GraphQL type definitions via `npx ts-node generate-typings`. */
export declare function runGraphqlTypes(ctx: PackageInstallerContext): Promise<void>;
/**
 * Run the consumer's own Prettier over a list of workspace-relative file paths.
 *
 * Using the consumer's Prettier binary (via `npx prettier --write`) ensures
 * that the consumer's `.prettierrc`, `prettier-plugin-organize-imports`, and
 * trailing-comma settings are honoured. ts-morph emits files with
 * `useTrailingCommas: false` which typically violates `eslint-plugin-prettier/
 * recommended` on the consumer side — a single format pass after `saveSync()`
 * closes the gap without us having to replicate the consumer's Prettier config.
 */
export declare function formatWorkspaceFiles(ctx: PackageInstallerContext, relativePaths: string[]): Promise<void>;
/** Add an import and an element to a decorator-array property in `shared.module.ts`. */
export declare function addToSharedModule(sourceFile: SourceFile, propertyName: string, itemText: string, importPath?: string, importNames?: string[]): void;
/** Change the `useClass` of a provider inside a decorator-array property. */
export declare function changeSharedModuleAdapter(sourceFile: SourceFile, propertyName: string, provide: string, adapter: string, importPath: string, importNames: string[]): void;
/** Add a `{ provide, useClass }` provider to a decorator array, registering imports first. */
export declare function addProviderToModule(sourceFile: SourceFile, moduleName: string, decoratorName: string, propertyName: string, provide: string, useClass: string, importPath: string, importNames: string[]): void;
/**
 * Idempotently wire `@bridges/bridges.module.ts` to the golden-reference shape.
 *
 * Adds the required imports and populates the three `@Module` arrays
 * (`imports`, `providers`, `exports`) without duplicating existing entries.
 * Preserves the `@Global()` decorator that the scaffold already ships.
 *
 * Design D3: idempotency is enforced by `DecoratorDriver.addModuleDecoratorProperty`
 * (skip-if-present by `element.getText()` compare) and by `ImportDriver.createImportItems`
 * (additive, deduped by named-import tracking).
 */
export declare function wireBridgesModule(sourceFile: SourceFile): void;
/**
 * Author `src/@bridges/providers/index.ts` as a complete barrel re-exporting
 * all five bridge provider consts. Called after both iam and o-auth trees are
 * copied (design D2: the installer owns this file to avoid two partial barrels
 * clobbering on copy). Idempotent: overwrites the file every time (the content
 * is fixed and known).
 */
export declare function authBridgesProvidersBarrel(workspaceDir: string): void;
/**
 * Idempotently set a `KEY = value` line in `<workspaceDir>/.env`.
 *
 * - If the key line exists → replace its value, preserve any inline `# comment`.
 * - If absent → append `KEY = value` at EOF.
 * - Idempotent: re-running yields the same file (design D4).
 */
export declare function setEnvValue(workspaceDir: string, key: string, value: string): void;
