import type { EmailTriggerEvent, FsFileSource, FunctionEmailTriggerSpec, FunctionSpec, FunctionScheduleTriggerSpec, FunctionTriggerRunSpec, LocalDirRef, ReleaseSpec } from "./namespaces/deploy.types.js"; export type Run402ExecutionMode = "apply" | "check" | "printSpec" | "printManifest" | "plan" | { kind: "applyReviewed"; planId: string; planFingerprint?: string; }; export interface Run402ReviewedPlanRequirement { planId: string; planFingerprint?: string; } export interface Run402FileConfigOptions { contentType?: string; content_type?: string; } export interface Run402DirConfigOptions { prefix?: string; ignore?: ReadonlyArray; includeSensitive?: boolean; } export type Run402SqlFileConfigOptions = { id?: string; name?: never; checksum?: string; transaction?: "required" | "none"; } | { /** Content-tracked migration name. The SDK compiles this to * `_`; SQL MUST be idempotent because changed * content applies again against a database with prior versions. */ name: string; id?: never; checksum?: string; transaction?: "required" | "none"; }; export interface Run402SqlFileConfigBaseMigration { sql_file: string; checksum?: string; transaction?: "required" | "none"; } export interface Run402NodeFunctionConfigOptions extends Omit { runtime?: "node22"; source?: never; files?: never; } export interface Run402ScheduleTriggerOptions { timezone?: string; misfirePolicy?: "skip"; misfire_policy?: "skip"; overlapPolicy?: "allow"; overlap_policy?: "allow"; run: FunctionTriggerRunSpec; } export interface Run402EmailTriggerOptions { events: readonly EmailTriggerEvent[]; run: FunctionTriggerRunSpec; } export interface Run402FileConfigSource extends FsFileSource { readonly content_type?: string; } export interface Run402SqlFileConfigIdMigration extends Run402SqlFileConfigBaseMigration { id: string; name?: never; } export interface Run402SqlFileConfigNameMigration extends Run402SqlFileConfigBaseMigration { name: string; id?: never; } export type Run402SqlFileConfigMigration = Run402SqlFileConfigIdMigration | Run402SqlFileConfigNameMigration; export type Run402ReleaseConfig = Omit & { project?: string; project_id?: string; idempotency_key?: string; }; export interface Run402ConfigEnv { readonly accessed: readonly string[]; get(name: string): string | undefined; required(name: string): string; readonly [name: `RUN402_${string}`]: string | undefined; } export interface Run402ConfigContext { manifestPath: string; rootDir: string; env: Run402ConfigEnv; } export type Run402ExecutableConfigExport = Run402ReleaseConfig | ((context: Run402ConfigContext) => Run402ReleaseConfig | Promise); export declare function defineConfig(config: T): T; export declare function dir(path: string, options?: Run402DirConfigOptions): LocalDirRef; export declare function file(path: string, options?: Run402FileConfigOptions): Run402FileConfigSource; export declare function sqlFile(path: string, options?: Run402SqlFileConfigOptions): Run402SqlFileConfigMigration; export declare function nodeFunction(path: string, options?: Run402NodeFunctionConfigOptions): FunctionSpec; export declare function scheduleTrigger(id: string, cron: string, options: Run402ScheduleTriggerOptions): FunctionScheduleTriggerSpec; export declare function emailTrigger(id: string, mailbox: string, options: Run402EmailTriggerOptions): FunctionEmailTriggerSpec; //# sourceMappingURL=config.d.ts.map