import type { ReleaseSpec } from "./namespaces/deploy.types.js"; export declare const RUN402_APP_SCHEMA_ID: "https://run402.com/schemas/run402-app.v1.schema.json"; export declare const RUN402_APP_MANIFEST_FILENAME: "run402.json"; export declare const RUN402_RELEASE_MANIFEST_FILENAME: "run402.release.json"; export declare const RUN402_APP_SPEC_VERSION: 1; export declare const RUN402_APP_INSTALL_GRAPH_VERSION: "run402.app_install_graph.v1"; export declare const RUN402_APP_UP_RESULT_KIND: "run402.up.result"; export declare const RUN402_APP_UP_RESULT_SCHEMA_VERSION: "run402.up.result.v1"; export declare const RUN402_APP_UP_RESULT_SCHEMA_URL: "https://run402.com/schemas/run402-up-result.v1.schema.json"; export declare const RUN402_BINDING_CLASSES: readonly ["generated_config_binding", "generated_secret_binding", "user_secret"]; export declare const RUN402_BINDING_SCOPES: readonly ["build", "runtime", "client", "verify", "template"]; export interface Run402AppSpec { $schema: typeof RUN402_APP_SCHEMA_ID; spec_version: typeof RUN402_APP_SPEC_VERSION; app: { id: string; display_name?: string; description?: string; }; project: { name?: string; id?: string; origin?: { subdomain?: string; }; }; resources?: { mailboxes?: Record; webhooks?: Record; }; secrets?: Record; build?: Run402AppBuildSpec; release: Run402AppReleaseSpec; lifecycle?: { project?: "per_app" | "shared"; prune?: "approval_required" | "disabled"; }; verify?: { http?: Run402AppHttpVerifySpec[]; }; } export interface Run402AppMailboxSpec { slug?: string; roles?: ("default_outbound" | "auth_sender")[]; description?: string; } export interface Run402AppWebhookSpec { mailbox: string; url: string; events: string[]; enabled?: boolean; signing?: { required?: boolean; }; } export interface Run402AppSecretSpec { required?: boolean; source_env?: string; description?: string; } export interface Run402AppBuildSpec { mode?: "local" | "remote" | "sandbox"; commands?: Run402AppBuildCommand[]; } export interface Run402AppBuildCommand { id: string; argv?: string[]; shell?: string; cwd?: string; } export type Run402AppReleaseSpec = Omit, "project"> & { project?: never; }; export interface Run402AppHttpVerifySpec { id: string; path?: string; url?: string; expect: { status: number; }; retries?: number; } export type Run402AppSourceMetadata = { kind: "local"; path: string; commit?: string; } | { kind: "repo"; repo_url: string; commit?: string; }; export interface CompileRun402AppInstallGraphOptions { source?: Run402AppSourceMetadata; name?: string; root_idempotency_key?: string; } export type Run402AppInstallNodeStatus = "planned" | "running" | "succeeded" | "blocked" | "failed" | "skipped" | "propagation_pending"; export type Run402AppInstallMutation = "none" | "local" | "remote" | "destructive"; export type Run402AppUpStatus = "planned" | "running" | "succeeded" | "blocked" | "failed" | "partial" | "deployed_unverified" | "propagation_pending"; export type Run402AppUpErrorCode = "APP_SPEC_INVALID" | "PROJECT_REQUIRED" | "PROJECT_CONFLICT" | "TIER_REQUIRED" | "SPEND_APPROVAL_REQUIRED" | "BUILD_APPROVAL_REQUIRED" | "BUILD_FAILED" | "MISSING_SECRET" | "RESOURCE_CONFLICT" | "RESOURCE_PRUNE_REQUIRES_APPROVAL" | "UNSUPPORTED_RESOURCE_KIND" | "RELEASE_APPLY_FAILED" | "VERIFY_FAILED" | "VERIFY_PROPAGATION_PENDING" | "CONCURRENT_UP_IN_PROGRESS" | "APP_INSTALL_STATE_UNAVAILABLE" | "REMOTE_BUILD_UNSUPPORTED"; export type Run402BindingClass = typeof RUN402_BINDING_CLASSES[number]; export type Run402BindingScope = typeof RUN402_BINDING_SCOPES[number]; export interface Run402AppUpSpendImpact { amount_usd_micros?: number; currency?: "USD"; description?: string; } export interface Run402AppUpNextAction { type: string; code?: Run402AppUpErrorCode; message?: string; command?: string; argv?: string[]; field_path?: string; node_id?: string; spend?: Run402AppUpSpendImpact; docs_url?: string; } export interface Run402AppUpDiagnostic { code: Run402AppUpErrorCode; message: string; severity: "info" | "warning" | "error"; node_id?: string; field_path?: string; details?: Record; } export interface Run402AppBinding { env: string; binding_class: Run402BindingClass; scopes: Run402BindingScope[]; source: string; value?: string; redacted?: boolean; } export interface Run402AppUpApprovalPolicy { yes: boolean; allow_prune: boolean; max_spend_usd: number | null; build_mode: "local" | "remote" | "sandbox" | null; shell_build_approved: boolean; } export interface Run402AppUpStep { id: string; kind: string; status: Run402AppInstallNodeStatus; mutation: Run402AppInstallMutation; destructive: boolean; spend: boolean; idempotent: boolean; ensure_key?: string; input_digest: `sha256:${string}`; depends_on: string[]; diagnostics?: Run402AppUpDiagnostic[]; next_actions?: Run402AppUpNextAction[]; } export interface Run402AppUpResourceSummary { mailboxes: Record; webhooks: Record; bindings: Run402AppBinding[]; user_secrets: Record; } export type Run402AppVerifyStatus = "verified" | "propagation_pending" | "failed"; /** Header evidence from one HTTP response, not proof of release stability. */ export interface Run402ObservedRelease { release_id: string | null; generation: number | null; source: "response_headers"; url: string; observed_at: string; unavailable_reason: "headers_missing_or_invalid" | "request_failed" | null; } export interface Run402AppUpVerifyResult { status: Run402AppVerifyStatus; warnings: Run402AppUpDiagnostic[]; next_action: Run402AppUpNextAction | null; propagation_wait_ms: number; } export interface Run402AppUpResultEnvelope { kind: typeof RUN402_APP_UP_RESULT_KIND; schema_version: typeof RUN402_APP_UP_RESULT_SCHEMA_VERSION; schema_url: typeof RUN402_APP_UP_RESULT_SCHEMA_URL; status: Run402AppUpStatus; operation_id: string | null; install_id: string | null; spec_digest: `sha256:${string}`; graph_digest: `sha256:${string}`; source: Run402AppSourceMetadata | null; manifest_path: string; started_at: string; ended_at: string; duration_ms: number; approval_policy: Run402AppUpApprovalPolicy; dry_run: boolean; project: { id: string | null; name: string | null; public_origin: string | null; }; steps: Run402AppUpStep[]; resources: Run402AppUpResourceSummary; release: { operation_id: string | null; release_id: string | null; spec: Run402AppReleaseSpec; }; verification: { http: Array<{ id: string; status: Run402AppInstallNodeStatus; path?: string; url?: string; expected_status: number; actual_status?: number | null; observed_release?: Run402ObservedRelease; propagation_wait_ms?: number; diagnostic?: Record; }>; }; verify?: Run402AppUpVerifyResult; diagnostics: Run402AppUpDiagnostic[]; next_actions: Run402AppUpNextAction[]; graph: Run402AppInstallGraph; } export interface Run402AppInstallGraphNode { id: string; kind: string; depends_on: string[]; input_digest: `sha256:${string}`; status: Run402AppInstallNodeStatus; mutation: Run402AppInstallMutation; idempotent: boolean; ensure_key?: string; destructive: boolean; spend: boolean; details?: Record; } export interface Run402GeneratedMailboxBindings { id: string; address: string; } export interface Run402AppInstallBindings { mailboxes: Record; } export interface Run402AppInstallGraph { schema_version: typeof RUN402_APP_INSTALL_GRAPH_VERSION; app_id: string; source: Run402AppSourceMetadata | null; spec_digest: `sha256:${string}`; graph_digest: `sha256:${string}`; nodes: Run402AppInstallGraphNode[]; release_spec: Run402AppReleaseSpec; bindings: Run402AppInstallBindings; } export declare function compileRun402AppInstallGraph(spec: Run402AppSpec, opts?: CompileRun402AppInstallGraphOptions): Promise; export declare function generatedMailboxBindings(logicalName: string): Run402GeneratedMailboxBindings; export declare function mailboxRuntimeBindings(logicalName: string): Run402AppBinding[]; export declare function platformMetadataBindings(opts?: { publicOriginKnown?: boolean; }): Run402AppBinding[]; export declare function createRun402AppUpResult(input: { graph: Run402AppInstallGraph; manifest_path: string; status: Run402AppUpStatus; started_at: string; ended_at?: string; dry_run: boolean; project_id?: string | null; project_name?: string | null; public_origin?: string | null; approval_policy?: Partial; operation_id?: string | null; install_id?: string | null; diagnostics?: Run402AppUpDiagnostic[]; next_actions?: Run402AppUpNextAction[]; blocked_node_id?: string; verify?: Run402AppUpVerifyResult; }): Run402AppUpResultEnvelope; //# sourceMappingURL=app-up.d.ts.map