import { Command } from "commander";
import { type RegistryPreflight } from "../utils/auth-preflight.js";
export declare const PLATFORM_MONOREPO_NAME = "mesh-platform";
export declare function isInsidePlatformMonorepo(dir: string): boolean;
export declare function shouldBootstrapAppsRepo(cwd: string): boolean;
export declare function bootstrapAppsRepo(cwd: string, tenant: string): string[];
export declare function ensureWorkspaceGlobs(root: string, required: string[]): string[];
export declare function workspaceGlobForApp(root: string, appDir: string): string | null;
interface CreateAppOptions {
    tenant?: string;
    name?: string;
    template?: string;
    primitives?: string;
    test: boolean;
    skipRegistryCheck?: boolean;
}
export declare function copyTemplate(srcDir: string, destDir: string, context: Record<string, unknown>): void;
export declare function describeNoAppsHome(cwd: string, tenant: string, baseDir: string, test: boolean): {
    message: string;
    hint: string;
};
export declare function resolveAppDir(cwd: string, tenant: string, name: string, test: boolean): string;
export declare function generateComposableApp(appDir: string, context: {
    name: string;
    tenant: string;
    service: boolean;
    database: boolean;
    temporal: boolean;
    bucket: boolean;
    region: string;
    workspaceDeps: boolean;
    meshRange: string;
    esmBundleRange: string;
    typesNodeRange: string;
    tsxRange: string;
    typescriptRange: string;
    deployerRoleArn: string;
}): void;
export declare function registerCreateAppCommand(program: Command): void;
export declare const NO_REGISTRY_ACCESS_MESSAGE: string;
export declare function ensureRegistryAccess(cwd: string, options: Pick<CreateAppOptions, "skipRegistryCheck">, preflight?: () => Promise<RegistryPreflight>): Promise<void>;
export declare function composableNextSteps(appDir: string, platform: string | null): string[];
export {};
