import { appendEnv } from "../../append-env.js"; import { provisionPhotonConnector } from "./connect.js"; import { provisionPhotonProject, usePhotonProject } from "./management.js"; import { openUrl } from "../../primitives/open-url.js"; import { deriveSlackConnectorSlug } from "../../scaffold/index.js"; import { writeTextFile } from "../../scaffold/files.js"; import type { IntegrationSetupEnvironment } from "../shared/environment.js"; import type { IntegrationSetupUi } from "../shared/ui.js"; import { ensureVercelProject } from "../../flows/ensure-vercel-project.js"; /** Inputs for Photon project provisioning and channel scaffolding. */ export interface PhotonSetupOptions { agentName: string; projectPath: string; environment: IntegrationSetupEnvironment; ui: IntegrationSetupUi; signal?: AbortSignal; force?: boolean; deps?: PhotonSetupDeps; } /** Outcome of Photon project provisioning and channel scaffolding. */ export type PhotonSetupResult = { kind: "done"; assignedPhoneNumber?: string; dashboardUrl: string; } | { kind: "cancelled"; }; export interface PhotonSetupDeps { appendEnv: typeof appendEnv; deriveConnectorSlug: typeof deriveSlackConnectorSlug; ensureVercelProject: typeof ensureVercelProject; openUrl: typeof openUrl; provisionConnector: typeof provisionPhotonConnector; provisionProject: typeof provisionPhotonProject; useProject: typeof usePhotonProject; writeTextFile: typeof writeTextFile; } /** Provisions a Photon project and scaffolds its iMessage channel. */ export declare function setupPhoton(options: PhotonSetupOptions): Promise;