import { type VercelCaptureFailure } from "#setup/primitives/index.js"; import { z } from "#compiled/zod/index.js"; import type { VercelProjectOperationOptions } from "./project-resolution.js"; export type { VercelProjectOperationOptions }; /** Shared deadline for Vercel project list and exact-lookup requests. */ export declare const VERCEL_PROJECT_REQUEST_TIMEOUT_MS = 15000; declare const VercelTeamListEntrySchema: z.ZodObject<{ name: z.ZodString; slug: z.ZodString; current: z.ZodBoolean; }, z.core.$strip>; type VercelTeamListEntry = z.infer; declare const VercelProjectListEntrySchema: z.ZodObject<{ name: z.ZodString; id: z.ZodString; }, z.core.$strip>; export type VercelProjectListEntry = z.infer; /** One ranked Vercel project search page and its optional continuation cursor. */ interface VercelProjectSearchPage { readonly projects: VercelProjectListEntry[]; readonly next?: number; } /** Parses one JSON response captured from the Vercel CLI. */ export declare function parseVercelJson(stdout: string, description: string): unknown; /** Converts a scoped API denial into the Vercel re-authentication action. */ export declare function requireVercelTeamAccess(failure: VercelCaptureFailure): never; /** Lists up to the maximum 100 Vercel scopes supported by the CLI. */ export declare function listTeams(projectRoot: string, options?: VercelProjectOperationOptions): Promise; /** Capabilities required by a setup flow, using Vercel's permission resource names. */ export interface VercelTeamRequirement { permissions: Readonly>; disabledReason: string; } /** Checks the listed teams in one request, retaining unknown scopes as unavailable. */ export declare function checkTeamRequirements(projectRoot: string, teams: readonly VercelTeamListEntry[], requirement: VercelTeamRequirement, options?: VercelProjectOperationOptions): Promise>; /** Returns an actionable reason when a specific team cannot satisfy a setup flow. */ export declare function checkTeamRequirement(projectRoot: string, team: string, requirement: VercelTeamRequirement, options?: VercelProjectOperationOptions): Promise; /** Lists the 20 most recent Vercel projects in one account scope. */ export declare function listRecentProjects(projectRoot: string, team: string, options?: VercelProjectOperationOptions): Promise; /** Ranks exact and prefix project-name matches ahead of substring matches. */ export declare function rankProjectSearchResults(projects: readonly VercelProjectListEntry[], query: string): VercelProjectListEntry[]; /** Searches one ranked Vercel project page and retains its continuation cursor. */ export declare function searchProjects(projectRoot: string, team: string, query: string, options?: VercelProjectOperationOptions & { readonly next?: number; }): Promise;