import type { DeployDefinition, CloudflareRunnerCommandPlan, NormalizedCloudflareSyncConfig, NormalizedPipeline, PipelineCloudflareEvent, PipelineCloudflareResult, PipelineWorkflowEventName, PipelineWorkflowEventSource, PipelineWorkflowLifecycleStepKind, PipelineWorkflowPlan, PipelineWorkflowTrustPolicy, ReportDefinition } from "../core/index.js"; export interface CloudflareSyncOptions { cwd: string; configPath: string; } export interface CloudflareRenderedFile { path: string; contents: string; } export interface CloudflareSyncJob { id: string; target: string[]; trigger: string[]; execution: string; runner: CloudflareRunnerCommandPlan; deploy?: DeployDefinition; report?: ReportDefinition; } export interface CloudflareSyncPlan { version: 1; generatedBy: "@async/pipeline"; config: string; lifecycle: PipelineWorkflowLifecycleStepKind[]; worker: string; queue: string; workflow: string; outputDir: string; capabilities: NormalizedCloudflareSyncConfig["capabilities"]; runner: NormalizedCloudflareSyncConfig["runner"]; cache: NormalizedCloudflareSyncConfig["cache"]; bridge: NormalizedCloudflareSyncConfig["bridge"]; apply: { mode: "external"; command: string; wranglerConfig: string; requiresHostCredentials: true; }; capabilityManifest: { version: 1; runner: NormalizedCloudflareSyncConfig["runner"]; cache: NormalizedCloudflareSyncConfig["cache"]; available: NormalizedCloudflareSyncConfig["capabilities"]; jobs: CloudflareRunnerCommandPlan[]; }; jobs: CloudflareSyncJob[]; } export interface CloudflareSyncLock { version: number; generator: string; config: string; files: string[]; hash: string; generatedAt: string; plan: CloudflareSyncPlan; } export interface CloudflareSyncRenderResult { enabled: boolean; lockPath: string; plan: CloudflareSyncPlan; lock: CloudflareSyncLock; files: CloudflareRenderedFile[]; } export type CloudflareWorkflowMockMode = "mock"; export interface CloudflareWorkflowPlanOptions extends CloudflareSyncOptions { job?: string; event?: PipelineWorkflowEventName | "workflow_dispatch" | "pull_request_target"; source?: PipelineWorkflowEventSource; action?: string; ref?: string; branch?: string; sha?: string; repository?: string; owner?: string; repo?: string; installationId?: number; pullRequestNumber?: number; pullRequestHeadSha?: string; pullRequestHeadRepo?: string; sameRepository?: boolean; releaseTag?: string; releaseAction?: string; requestedJob?: string; } export interface CloudflareWorkflowPlanResult extends PipelineWorkflowPlan { host: "cloudflare"; sync: CloudflareSyncPlan; bridge: CloudflareBridgePlan; } export interface CloudflareBridgeReportPlan { job: string; idempotencyKey: string; result: PipelineCloudflareResult; writeAllowed: boolean; github: { check: { name: string; sha: string; status: PipelineCloudflareResult["status"]; conclusion: "success" | "failure" | "cancelled" | "neutral" | null; externalId: string; }; deployment?: { environment: string; kind: "pages" | "worker"; sourcePath: string; urlAlias?: string; sha: string; ref: string; transientEnvironment: boolean; externalId: string; }; prComment?: { number: number; marker: string; mode: "upsert"; externalId: string; }; }; } export interface CloudflareBridgePlan { enabled: boolean; mode: NormalizedCloudflareSyncConfig["bridge"]["mode"]; queueMessage: PipelineCloudflareEvent | null; reports: CloudflareBridgeReportPlan[]; } export type CloudflareWorkflowEffectStatus = "mocked" | "skipped_untrusted"; export interface CloudflareWorkflowEffectReceipt { kind: "deploy" | "report"; host: "cloudflare" | "github"; status: CloudflareWorkflowEffectStatus; idempotencyKey: string; receiptPath: string; network: "mock"; effect: DeployDefinition | ReportDefinition; sourcePath?: string; sourceExists?: boolean; preview?: PipelineCloudflareResult["preview"]; } export interface CloudflareWorkflowRunReceipt { job: string; status: "passed" | "planned"; dryRun: boolean; mode: CloudflareWorkflowMockMode; idempotencyKey: string; stateDirectory: string; receiptPath?: string; lifecycle: PipelineWorkflowLifecycleStepKind[]; trust: PipelineWorkflowTrustPolicy; effects: CloudflareWorkflowEffectReceipt[]; issues: string[]; } export interface CloudflareWorkflowRunResult { status: "passed" | "planned" | "skipped"; plan: CloudflareWorkflowPlanResult; bridge?: { eventPath?: string; reports: Array<{ job: string; resultPath?: string; reportPath?: string; }>; }; runner?: { plans: Array<{ job: string; path: string; }>; }; receipts: CloudflareWorkflowRunReceipt[]; } export declare function renderCloudflareSync(pipeline: NormalizedPipeline, options: CloudflareSyncOptions): Promise; export declare function writeCloudflareSync(result: CloudflareSyncRenderResult, cwd: string): Promise; export declare function checkCloudflareSync(result: CloudflareSyncRenderResult, cwd: string, options?: { requireConfigured?: boolean; }): Promise; export declare function describeCloudflareSync(result: CloudflareSyncRenderResult): string[]; export declare function planCloudflareWorkflow(pipeline: NormalizedPipeline, options: CloudflareWorkflowPlanOptions): Promise; export declare function runCloudflareWorkflowMock(pipeline: NormalizedPipeline, options: CloudflareWorkflowPlanOptions & { dryRun?: boolean; mode?: CloudflareWorkflowMockMode; }): Promise; //# sourceMappingURL=cloudflare.d.ts.map