import { z } from 'zod'; export declare const LlmProviderTypeSchema: z.ZodEnum<["claude", "openai", "openrouter"]>; export type LlmProviderType = z.infer; /** * Friendly migration error for the removed `anthropicApiKey` config key. The * hard rename to the `provider` block ships in lockstep with hula-server, so a * leftover `anthropicApiKey` is a configuration error, not a silently-stripped * unknown key. */ export declare const LEGACY_ANTHROPIC_KEY_ERROR = "Config key `anthropicApiKey` is no longer supported \u2014 use provider: { type: 'claude', apiKey: '\u2026' } in .hublaunch/hublaunch.config.js. See CHANGELOG.md."; /** * Detect the removed `anthropicApiKey` key on a RAW (pre-parse) config object * and throw the migration error. Zod's `z.object` strips unknown keys before * any refinement runs, so this must run against the raw object — call it before * `ConfigSchema.parse`. Pure and side-effect free. */ export declare function assertNoLegacyProviderKeys(raw: unknown): void; declare const DeploymentServiceSchema: z.ZodObject<{ provider: z.ZodDefault>; customPath: z.ZodOptional; }, "strip", z.ZodTypeAny, { provider: "custom" | "vercel" | "netlify" | "railway"; customPath?: string | undefined; }, { provider?: "custom" | "vercel" | "netlify" | "railway" | undefined; customPath?: string | undefined; }>; declare const AuthServiceSchema: z.ZodObject<{ provider: z.ZodDefault>; customPath: z.ZodOptional; }, "strip", z.ZodTypeAny, { provider: "custom" | "clerk" | "auth0" | "none"; customPath?: string | undefined; }, { provider?: "custom" | "clerk" | "auth0" | "none" | undefined; customPath?: string | undefined; }>; declare const ServicesSchema: z.ZodObject<{ deployment: z.ZodOptional>; customPath: z.ZodOptional; }, "strip", z.ZodTypeAny, { provider: "custom" | "vercel" | "netlify" | "railway"; customPath?: string | undefined; }, { provider?: "custom" | "vercel" | "netlify" | "railway" | undefined; customPath?: string | undefined; }>>; authentication: z.ZodOptional>; customPath: z.ZodOptional; }, "strip", z.ZodTypeAny, { provider: "custom" | "clerk" | "auth0" | "none"; customPath?: string | undefined; }, { provider?: "custom" | "clerk" | "auth0" | "none" | undefined; customPath?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { deployment?: { provider: "custom" | "vercel" | "netlify" | "railway"; customPath?: string | undefined; } | undefined; authentication?: { provider: "custom" | "clerk" | "auth0" | "none"; customPath?: string | undefined; } | undefined; }, { deployment?: { provider?: "custom" | "vercel" | "netlify" | "railway" | undefined; customPath?: string | undefined; } | undefined; authentication?: { provider?: "custom" | "clerk" | "auth0" | "none" | undefined; customPath?: string | undefined; } | undefined; }>; declare const HooksSchema: z.ZodObject<{ deploymentShutdown: z.ZodOptional; beforePreview: z.ZodOptional; afterPreview: z.ZodOptional; beforeLaunch: z.ZodOptional; beforeMerge: z.ZodOptional; afterMerge: z.ZodOptional; }, "strip", z.ZodTypeAny, { deploymentShutdown?: string | undefined; beforePreview?: string | undefined; afterPreview?: string | undefined; beforeLaunch?: string | undefined; beforeMerge?: string | undefined; afterMerge?: string | undefined; }, { deploymentShutdown?: string | undefined; beforePreview?: string | undefined; afterPreview?: string | undefined; beforeLaunch?: string | undefined; beforeMerge?: string | undefined; afterMerge?: string | undefined; }>; declare const PreviewAuthSchema: z.ZodObject<{ provider: z.ZodDefault>; selectors: z.ZodOptional; passwordInput: z.ZodOptional; submitButton: z.ZodOptional; signInButton: z.ZodOptional; }, "strip", z.ZodTypeAny, { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; }, { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { provider: "custom" | "clerk" | "auth0" | "none" | "nextauth"; selectors?: { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; } | undefined; }, { provider?: "custom" | "clerk" | "auth0" | "none" | "nextauth" | undefined; selectors?: { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; } | undefined; }>; export type DeploymentServiceConfig = z.infer; export type AuthServiceConfig = z.infer; export type ServicesConfig = z.infer; export type HooksConfig = z.infer; export type PreviewAuthConfig = z.infer; export declare const ConfigSchema: z.ZodObject<{ editorCommand: z.ZodDefault>; planPath: z.ZodDefault; version: z.ZodOptional; trackingFile: z.ZodDefault; createIssuesPreference: z.ZodDefault>; planChoices: z.ZodDefault; skipUntrackedPrompt: z.ZodDefault; uploadBranch: z.ZodDefault; teamMembers: z.ZodOptional>; projectNumber: z.ZodOptional; projectId: z.ZodOptional; projectOwner: z.ZodOptional; projectAutoSync: z.ZodDefault; pollIntervalSeconds: z.ZodDefault; pollingProvider: z.ZodDefault>; usageTier: z.ZodDefault>; hulaProjectUrl: z.ZodOptional; hulaApiKey: z.ZodOptional; hulaProject: z.ZodOptional; errorWebhookUrl: z.ZodOptional; provider: z.ZodOptional>; apiKey: z.ZodOptional; }, "strip", z.ZodTypeAny, { type: "claude" | "openai" | "openrouter"; apiKey?: string | undefined; }, { type?: "claude" | "openai" | "openrouter" | undefined; apiKey?: string | undefined; }>>; containerResources: z.ZodOptional; memory: z.ZodOptional; disk: z.ZodOptional; }, "strip", z.ZodTypeAny, { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; }, { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; }>>; updateNotificationUrl: z.ZodOptional; updateNotificationNameTag: z.ZodOptional; commandAliases: z.ZodOptional>; shortcuts: z.ZodOptional>; }, "strip", z.ZodTypeAny, { primary: string[]; shortcuts?: Record | undefined; }, { primary?: string[] | undefined; shortcuts?: Record | undefined; }>>; priorityLevels: z.ZodOptional; color: z.ZodString; emoji: z.ZodString; label: z.ZodOptional; }, "strip", z.ZodTypeAny, { name: "Critical" | "High" | "Medium" | "Low" | "Minimal"; color: string; emoji: string; label?: string | undefined; }, { name: "Critical" | "High" | "Medium" | "Low" | "Minimal"; color: string; emoji: string; label?: string | undefined; }>, "many">>; issueSortOrder: z.ZodOptional>; sortBy: z.ZodDefault>; direction: z.ZodDefault>; }, "strip", z.ZodTypeAny, { direction: "asc" | "desc"; groupBy: "status" | "priority" | "none"; sortBy: "number" | "created" | "updated"; }, { direction?: "asc" | "desc" | undefined; groupBy?: "status" | "priority" | "none" | undefined; sortBy?: "number" | "created" | "updated" | undefined; }>>; services: z.ZodOptional>; customPath: z.ZodOptional; }, "strip", z.ZodTypeAny, { provider: "custom" | "vercel" | "netlify" | "railway"; customPath?: string | undefined; }, { provider?: "custom" | "vercel" | "netlify" | "railway" | undefined; customPath?: string | undefined; }>>; authentication: z.ZodOptional>; customPath: z.ZodOptional; }, "strip", z.ZodTypeAny, { provider: "custom" | "clerk" | "auth0" | "none"; customPath?: string | undefined; }, { provider?: "custom" | "clerk" | "auth0" | "none" | undefined; customPath?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { deployment?: { provider: "custom" | "vercel" | "netlify" | "railway"; customPath?: string | undefined; } | undefined; authentication?: { provider: "custom" | "clerk" | "auth0" | "none"; customPath?: string | undefined; } | undefined; }, { deployment?: { provider?: "custom" | "vercel" | "netlify" | "railway" | undefined; customPath?: string | undefined; } | undefined; authentication?: { provider?: "custom" | "clerk" | "auth0" | "none" | undefined; customPath?: string | undefined; } | undefined; }>>; hooks: z.ZodOptional; beforePreview: z.ZodOptional; afterPreview: z.ZodOptional; beforeLaunch: z.ZodOptional; beforeMerge: z.ZodOptional; afterMerge: z.ZodOptional; }, "strip", z.ZodTypeAny, { deploymentShutdown?: string | undefined; beforePreview?: string | undefined; afterPreview?: string | undefined; beforeLaunch?: string | undefined; beforeMerge?: string | undefined; afterMerge?: string | undefined; }, { deploymentShutdown?: string | undefined; beforePreview?: string | undefined; afterPreview?: string | undefined; beforeLaunch?: string | undefined; beforeMerge?: string | undefined; afterMerge?: string | undefined; }>>; previewAuth: z.ZodOptional>; selectors: z.ZodOptional; passwordInput: z.ZodOptional; submitButton: z.ZodOptional; signInButton: z.ZodOptional; }, "strip", z.ZodTypeAny, { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; }, { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; }>>; }, "strip", z.ZodTypeAny, { provider: "custom" | "clerk" | "auth0" | "none" | "nextauth"; selectors?: { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; } | undefined; }, { provider?: "custom" | "clerk" | "auth0" | "none" | "nextauth" | undefined; selectors?: { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; } | undefined; }>>; browserHeadless: z.ZodDefault>; worktreeBasePath: z.ZodDefault; envVars: z.ZodOptional, z.ZodLiteral<"all">]>>; steps: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; }, { model?: string | undefined; }>>; findBugs: z.ZodOptional; maxIterations: z.ZodOptional; diffMaxLines: z.ZodOptional; excludeRegex: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; maxIterations?: number | undefined; diffMaxLines?: number | undefined; excludeRegex?: string | undefined; }, { model?: string | undefined; maxIterations?: number | undefined; diffMaxLines?: number | undefined; excludeRegex?: string | undefined; }>>; bugfix: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; }, { model?: string | undefined; }>>; lintfix: z.ZodOptional; maxIterations: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; maxIterations?: number | undefined; }, { model?: string | undefined; maxIterations?: number | undefined; }>>; build: z.ZodOptional; maxIterations: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; maxIterations?: number | undefined; }, { model?: string | undefined; maxIterations?: number | undefined; }>>; regression: z.ZodOptional; }, "strip", z.ZodTypeAny, { skip?: boolean | undefined; }, { skip?: boolean | undefined; }>>; mergeConflict: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; }, { model?: string | undefined; }>>; summary: z.ZodOptional; maxIterations: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; maxIterations?: number | undefined; }, { model?: string | undefined; maxIterations?: number | undefined; }>>; verify: z.ZodOptional; maxIterations: z.ZodOptional; skip: z.ZodOptional; }, "strip", z.ZodTypeAny, { model?: string | undefined; maxIterations?: number | undefined; skip?: boolean | undefined; }, { model?: string | undefined; maxIterations?: number | undefined; skip?: boolean | undefined; }>>; }, "strip", z.ZodTypeAny, { implementation?: { model?: string | undefined; } | undefined; findBugs?: { model?: string | undefined; maxIterations?: number | undefined; diffMaxLines?: number | undefined; excludeRegex?: string | undefined; } | undefined; bugfix?: { model?: string | undefined; } | undefined; lintfix?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; build?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; regression?: { skip?: boolean | undefined; } | undefined; mergeConflict?: { model?: string | undefined; } | undefined; summary?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; verify?: { model?: string | undefined; maxIterations?: number | undefined; skip?: boolean | undefined; } | undefined; }, { implementation?: { model?: string | undefined; } | undefined; findBugs?: { model?: string | undefined; maxIterations?: number | undefined; diffMaxLines?: number | undefined; excludeRegex?: string | undefined; } | undefined; bugfix?: { model?: string | undefined; } | undefined; lintfix?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; build?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; regression?: { skip?: boolean | undefined; } | undefined; mergeConflict?: { model?: string | undefined; } | undefined; summary?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; verify?: { model?: string | undefined; maxIterations?: number | undefined; skip?: boolean | undefined; } | undefined; }>>; }, "strip", z.ZodTypeAny, { planPath: string; editorCommand: "cursor" | "vsCode" | "other"; trackingFile: string; createIssuesPreference: "alwaysLatest" | "chooseRecentPlan"; planChoices: number; skipUntrackedPrompt: boolean; uploadBranch: string; projectAutoSync: boolean; pollIntervalSeconds: number; pollingProvider: "hula-server" | "github"; usageTier: "free" | "pro"; browserHeadless: "never" | "auto" | "always"; worktreeBasePath: string; projectOwner?: string | undefined; version?: string | undefined; provider?: { type: "claude" | "openai" | "openrouter"; apiKey?: string | undefined; } | undefined; teamMembers?: string[] | undefined; projectNumber?: number | undefined; projectId?: string | undefined; hulaProjectUrl?: string | undefined; hulaApiKey?: string | undefined; hulaProject?: string | undefined; errorWebhookUrl?: string | undefined; containerResources?: { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; } | undefined; updateNotificationUrl?: string | undefined; updateNotificationNameTag?: string | undefined; commandAliases?: { primary: string[]; shortcuts?: Record | undefined; } | undefined; priorityLevels?: { name: "Critical" | "High" | "Medium" | "Low" | "Minimal"; color: string; emoji: string; label?: string | undefined; }[] | undefined; issueSortOrder?: { direction: "asc" | "desc"; groupBy: "status" | "priority" | "none"; sortBy: "number" | "created" | "updated"; } | undefined; services?: { deployment?: { provider: "custom" | "vercel" | "netlify" | "railway"; customPath?: string | undefined; } | undefined; authentication?: { provider: "custom" | "clerk" | "auth0" | "none"; customPath?: string | undefined; } | undefined; } | undefined; hooks?: { deploymentShutdown?: string | undefined; beforePreview?: string | undefined; afterPreview?: string | undefined; beforeLaunch?: string | undefined; beforeMerge?: string | undefined; afterMerge?: string | undefined; } | undefined; previewAuth?: { provider: "custom" | "clerk" | "auth0" | "none" | "nextauth"; selectors?: { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; } | undefined; } | undefined; envVars?: string[] | "all" | undefined; steps?: { implementation?: { model?: string | undefined; } | undefined; findBugs?: { model?: string | undefined; maxIterations?: number | undefined; diffMaxLines?: number | undefined; excludeRegex?: string | undefined; } | undefined; bugfix?: { model?: string | undefined; } | undefined; lintfix?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; build?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; regression?: { skip?: boolean | undefined; } | undefined; mergeConflict?: { model?: string | undefined; } | undefined; summary?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; verify?: { model?: string | undefined; maxIterations?: number | undefined; skip?: boolean | undefined; } | undefined; } | undefined; }, { planPath?: string | undefined; projectOwner?: string | undefined; version?: string | undefined; provider?: { type?: "claude" | "openai" | "openrouter" | undefined; apiKey?: string | undefined; } | undefined; editorCommand?: "cursor" | "vsCode" | "other" | undefined; trackingFile?: string | undefined; createIssuesPreference?: "alwaysLatest" | "chooseRecentPlan" | undefined; planChoices?: number | undefined; skipUntrackedPrompt?: boolean | undefined; uploadBranch?: string | undefined; teamMembers?: string[] | undefined; projectNumber?: number | undefined; projectId?: string | undefined; projectAutoSync?: boolean | undefined; pollIntervalSeconds?: number | undefined; pollingProvider?: "hula-server" | "github" | undefined; usageTier?: "free" | "pro" | undefined; hulaProjectUrl?: string | undefined; hulaApiKey?: string | undefined; hulaProject?: string | undefined; errorWebhookUrl?: string | undefined; containerResources?: { cpu?: number | undefined; memory?: number | undefined; disk?: number | undefined; } | undefined; updateNotificationUrl?: string | undefined; updateNotificationNameTag?: string | undefined; commandAliases?: { primary?: string[] | undefined; shortcuts?: Record | undefined; } | undefined; priorityLevels?: { name: "Critical" | "High" | "Medium" | "Low" | "Minimal"; color: string; emoji: string; label?: string | undefined; }[] | undefined; issueSortOrder?: { direction?: "asc" | "desc" | undefined; groupBy?: "status" | "priority" | "none" | undefined; sortBy?: "number" | "created" | "updated" | undefined; } | undefined; services?: { deployment?: { provider?: "custom" | "vercel" | "netlify" | "railway" | undefined; customPath?: string | undefined; } | undefined; authentication?: { provider?: "custom" | "clerk" | "auth0" | "none" | undefined; customPath?: string | undefined; } | undefined; } | undefined; hooks?: { deploymentShutdown?: string | undefined; beforePreview?: string | undefined; afterPreview?: string | undefined; beforeLaunch?: string | undefined; beforeMerge?: string | undefined; afterMerge?: string | undefined; } | undefined; previewAuth?: { provider?: "custom" | "clerk" | "auth0" | "none" | "nextauth" | undefined; selectors?: { emailInput?: string | undefined; passwordInput?: string | undefined; submitButton?: string | undefined; signInButton?: string | undefined; } | undefined; } | undefined; browserHeadless?: "never" | "auto" | "always" | undefined; worktreeBasePath?: string | undefined; envVars?: string[] | "all" | undefined; steps?: { implementation?: { model?: string | undefined; } | undefined; findBugs?: { model?: string | undefined; maxIterations?: number | undefined; diffMaxLines?: number | undefined; excludeRegex?: string | undefined; } | undefined; bugfix?: { model?: string | undefined; } | undefined; lintfix?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; build?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; regression?: { skip?: boolean | undefined; } | undefined; mergeConflict?: { model?: string | undefined; } | undefined; summary?: { model?: string | undefined; maxIterations?: number | undefined; } | undefined; verify?: { model?: string | undefined; maxIterations?: number | undefined; skip?: boolean | undefined; } | undefined; } | undefined; }>; export type Config = z.infer; export declare const DEFAULT_CONFIG: Config; export {}; //# sourceMappingURL=config.schema.d.ts.map