import type { BackendEnvironment, FrontendEnvironment, SharedEnvironment, StatisticsEnvironment } from '@stamhoofd/types/Environment'; import type { CliContext } from '../context/create-context.js'; import { buildPorts } from '../context/ports.js'; export type AppService = BackendAppService | FrontendAppService; export declare enum BackendApp { Api = "api", Renderer = "renderer", Redirecter = "redirecter", Backup = "backup", StatisticsSyncer = "statistics-syncer" } export declare enum FrontendApp { Webshop = "webshop", Calculator = "calculator", Mobile = "mobile", WebApp = "web-app" } export type BackendAppName = `${BackendApp}`; export type FrontendAppName = `${FrontendApp}`; export type BackendAppService = { backend: BackendAppName; }; export type FrontendAppService = { frontend: FrontendAppName; }; export type DevelopmentDomains = ReturnType; export type DevelopmentDatabases = ReturnType; export type DevelopmentConfig = { domains: DevelopmentDomains; databases: DevelopmentDatabases; ports: ReturnType; backendEnv: NodeJS.ProcessEnv; appEnv: AppEnvironment; }; /** * The statistics syncer is the one service that runs on none of the platform configuration: it moves * rows between two databases and needs nothing else. */ export type AppEnvironment = SharedEnvironment | StatisticsEnvironment; export declare function buildDevelopmentConfig(context: CliContext, service?: AppService): DevelopmentConfig; /** * Every database this instance owns. Secondary instances suffix their own name, so worktrees never * share data, exactly like the main development database. */ declare function buildDevelopmentDatabases(context: CliContext): { main: string; platformStatistics: string; }; export declare function buildDevelopmentEnvironment(env: string, service: { backend: 'statistics-syncer'; }): Promise; export declare function buildDevelopmentEnvironment(env: string, service: BackendAppService): Promise; export declare function buildDevelopmentEnvironment(env: string, service: FrontendAppService): Promise; declare function buildDevelopmentDomains(context: CliContext): { dashboard: string; api: string; renderer: string; registration: string; webshop: string; customDomain: string; mail: string; files: string; filesConsole: string; sso: string; mysql: string; metabase: string; }; export {}; //# sourceMappingURL=development-config.d.ts.map