import { OverrideSection } from "../contract.mjs";
import { BosConfig, BosConfigInput } from "../types.mjs";

//#region src/cli/init.d.ts
declare const INIT_ROOT_PATTERNS: readonly ["bos.config.json", "package.json", ".env.example", ".gitignore", "biome.json", "bunfig.toml", "Dockerfile", "railway.json", ".agent/**", "AGENTS.md", ".opencode/skills/everything-dev/**", ".changeset/config.json", ".changeset/README.md", "README.md", "CONTRIBUTING.md", ".github/templates/**"];
interface SourceResult {
  sourceDir: string;
  parentConfig: BosConfig;
  cleanup: () => Promise<void>;
}
declare function resolveSourceDir(opts: {
  extendsAccount: string;
  extendsGateway: string;
  source?: string;
}): Promise<SourceResult>;
declare function buildInitPatterns(overrides: OverrideSection[], plugins?: string[]): string[];
declare function sourcePathToDestinationPath(filePath: string): string;
declare function fetchParentConfig(extendsAccount: string, extendsGateway: string): Promise<BosConfig>;
declare function resolveRepositoryViaExtendsChain(extendsAccount: string, extendsGateway: string, visited?: Set<string>): Promise<{
  repository: string;
  config: BosConfig;
} | null>;
declare function detectGitRemoteUrl(directory: string): Promise<string | undefined>;
declare function downloadTarball(repoUrl: string): Promise<{
  dir: string;
  cleanup: () => Promise<void>;
}>;
declare function copyFilteredFiles(sourceDir: string, destination: string, patterns: string[], _options: {
  overrides: OverrideSection[];
  plugins?: string[];
}): Promise<number>;
declare function personalizeConfig(destination: string, opts: {
  extendsAccount: string;
  extendsGateway: string;
  account?: string;
  domain?: string;
  plugins?: string[];
  overrides: OverrideSection[];
  pluginRoutes?: Record<string, string[]>;
  workspaceOpts?: {
    localOverrides?: boolean;
    sourceDir?: string;
  };
  mode?: "init" | "sync";
  existingConfig?: Record<string, unknown>;
  repository?: string;
  title?: string;
  description?: string;
  testnet?: string;
  staging?: unknown;
}): Promise<void>;
declare function runBunInstall(destination: string, spinner?: {
  message: (msg: string) => void;
}): Promise<void>;
declare function runBunInstallForUpgrade(destination: string, spinner?: {
  message: (msg: string) => void;
}): Promise<void>;
declare function runTypesGen(destination: string, spinner?: {
  message: (msg: string) => void;
}): Promise<void>;
declare function runDockerComposeUp(destination: string): Promise<void>;
declare function stripOrphanedWorkspacesFromLockfile(lockfilePath: string, allowedWorkspaces: string[]): void;
declare function removeInitLockfile(lockfilePath: string): void;
declare function scaffoldMinimalProject(destination: string, parentConfig: BosConfigInput, opts: {
  extendsAccount: string;
  extendsGateway: string;
  account?: string;
  domain?: string;
  plugins?: string[];
  overrides: OverrideSection[];
  repository?: string;
  title?: string;
  description?: string;
}): Promise<number>;
declare function writeInitSnapshot(destination: string, extendsAccount: string, extendsGateway: string, sourceDir: string, patterns: string[], _options: {
  overrides: OverrideSection[];
  plugins?: string[];
}): Promise<void>;
declare function generateDatabaseMigrations(destination: string): Promise<void>;
declare function execCommand(command: string, args: string[], cwd?: string, options?: {
  stdio?: "pipe" | "inherit";
}): Promise<void>;
//#endregion
export { INIT_ROOT_PATTERNS, buildInitPatterns, copyFilteredFiles, detectGitRemoteUrl, downloadTarball, execCommand, fetchParentConfig, generateDatabaseMigrations, personalizeConfig, removeInitLockfile, resolveRepositoryViaExtendsChain, resolveSourceDir, runBunInstall, runBunInstallForUpgrade, runDockerComposeUp, runTypesGen, scaffoldMinimalProject, sourcePathToDestinationPath, stripOrphanedWorkspacesFromLockfile, writeInitSnapshot };
//# sourceMappingURL=init.d.mts.map