import type { PlatformBootstrapConfig } from './bootstrap'; import type { BootstrapBundleBuildResult } from './bootstrap-bundle'; import type { PlatformGenesisGuest } from './platform-genesis'; export type ForgeZeroLaunchEnvironment = 'development' | 'production'; export interface ForgeZeroLaunchProfile { environment: ForgeZeroLaunchEnvironment; branch: 'dev' | 'main'; replicas: 3 | 4; appOrigin: string; apiOrigin: string; zoneName: 'forgezero.net'; kvNamespaceTitle: string; workerScriptName: string; region: { key: string; label: string; country: string; city?: string; }; collectorExport: string; agentOtlpEndpoint: string; seedSyncEpoch: string; privateCidrs: readonly string[]; /** Optional owner-selected external attestation policy; platform launch never requires it implicitly. */ attestation?: { measurement: string; tcbFloor: { bootLoader: number; tee: number; snp: number; microcode: number; }; }; nodeHostname(nodeIndex: number): string; } export interface ForgeZeroLaunchOwnerInput { custodianEmail: string; email: { provider: 'smtp'; host: string; port: number; user: string; from: string; } | { provider: 'jetemail'; from: string; eu: boolean; }; } /** * ForgeZero's own genesis public coordinates. They are reviewed source data, * not an operator questionnaire. Tenant and reusable Agent deployments remain * driven by their own typed plans and never inherit these product coordinates. */ export declare function forgeZeroLaunchProfile(environment: ForgeZeroLaunchEnvironment): ForgeZeroLaunchProfile; /** Build the one common config which is expanded into the reviewed elastic fleet. */ export declare function forgeZeroLaunchTemplate(profile: ForgeZeroLaunchProfile, guests: readonly PlatformGenesisGuest[], bundle: BootstrapBundleBuildResult, owner: ForgeZeroLaunchOwnerInput): PlatformBootstrapConfig;