import { r as AppConfig } from "./CodemationAppContext-K51b7oXe.js";
import { a as CodemationAuthConfig } from "./CodemationWhitelabelConfig-Ca2mCUeC.js";
import { a as CodemationFrontendAuthSnapshot, n as InternalAuthBootstrap, r as FrontendAppConfig, t as PublicFrontendBootstrap } from "./PublicFrontendBootstrap-Cev3qK46.js";
import { ChildProcess } from "node:child_process";

//#region src/process/ProcessRunner.types.d.ts
type ProcessRunOptions = Readonly<{
  cwd?: string;
  env?: NodeJS.ProcessEnv;
  /**
   * Mirrors `child_process.SpawnOptions["stdio"]`. The runner forwards the value verbatim to the
   * underlying subprocess, so callers that need fine-grained per-fd control (e.g.
   * `["ignore", "pipe", "pipe"]`) can pass a tuple.
   */
  stdio?: "inherit" | "pipe" | "ignore" | ReadonlyArray<"inherit" | "pipe" | "ignore">;
  /**
   * On Unix this detaches the child from the parent's process group so it becomes the group
   * leader (used by {@link DevTrackedProcessTreeKiller} to broadcast SIGTERM to descendants).
   * On Windows it is ignored — `windowsHide` should be used to suppress console windows instead.
   */
  detached?: boolean;
  windowsHide?: boolean;
}>;
type ProcessRunResult = Readonly<{
  exitCode: number | null;
}>;
/**
 * Cross-platform process spawning seam. Implementations resolve bare CLI names (`pnpm`, `prisma`,
 * `next`, …) against the OS PATH using OS-appropriate executable lookup, so call sites stop having
 * to remember `pnpm.cmd` or `shell: true` on Windows.
 *
 * `spawn` returns a Node `ChildProcess` so existing helpers like `DevNextChildProcessOutputFilter`
 * and `DevTrackedProcessTreeKiller` keep working unchanged.
 */
interface ProcessRunner {
  /** Long-lived child (dev watcher, Next dev server). Returns a `ChildProcess`. */
  spawn(command: string, args: ReadonlyArray<string>, options?: ProcessRunOptions): ChildProcess;
  /** Synchronous one-shot (used by Prisma migrate deploy). */
  runSync(command: string, args: ReadonlyArray<string>, options?: ProcessRunOptions): ProcessRunResult;
}
//#endregion
//#region src/presentation/frontend/CodemationFrontendAuthSnapshotFactory.d.ts
declare class CodemationFrontendAuthSnapshotFactory {
  createFromAppConfig(appConfig: AppConfig): CodemationFrontendAuthSnapshot;
  createFromResolvedInputs(args: Readonly<{
    authConfig: CodemationAuthConfig | undefined;
    env: NodeJS.ProcessEnv;
    uiAuthEnabled: boolean;
  }>): CodemationFrontendAuthSnapshot;
  private resolveUiAuthEnabled;
  private resolveAuthSecret;
  private createOauthProviders;
  private createOAuthProvider;
  private createOidcProvider;
  private resolveOAuthProviderName;
}
//#endregion
//#region src/presentation/frontend/FrontendAppConfigFactory.d.ts
declare class FrontendAppConfigFactory {
  private readonly appConfig;
  private readonly authSnapshotFactory;
  constructor(appConfig: AppConfig, authSnapshotFactory: CodemationFrontendAuthSnapshotFactory);
  create(): FrontendAppConfig;
}
//#endregion
//#region src/presentation/frontend/InternalAuthBootstrapFactory.d.ts
declare class InternalAuthBootstrapFactory {
  private readonly appConfig;
  private readonly authSnapshotFactory;
  constructor(appConfig: AppConfig, authSnapshotFactory: CodemationFrontendAuthSnapshotFactory);
  create(): InternalAuthBootstrap;
}
//#endregion
//#region src/presentation/frontend/PublicFrontendBootstrapFactory.d.ts
declare class PublicFrontendBootstrapFactory {
  private readonly frontendAppConfigFactory;
  constructor(frontendAppConfigFactory: FrontendAppConfigFactory);
  create(): PublicFrontendBootstrap;
}
//#endregion
export { ProcessRunOptions as a, CodemationFrontendAuthSnapshotFactory as i, InternalAuthBootstrapFactory as n, ProcessRunResult as o, FrontendAppConfigFactory as r, ProcessRunner as s, PublicFrontendBootstrapFactory as t };
//# sourceMappingURL=PublicFrontendBootstrapFactory-ClEjZP74.d.ts.map