export type ProjectType = 'next' | 'vite' | 'streamlit'; export type GitHubPermission = 'admin' | 'write' | 'read'; export interface ProjectMemberInput { identifier: string; role: GitHubPermission; } export interface CreateProjectPayload { name: string; type: ProjectType; visibility?: 'public' | 'private'; members?: ProjectMemberInput[]; provisionInfra?: boolean; } export interface OrgTargets { boogiepop: string; remotes: string; rules: Record; } export interface ProjectNameConflict { kind: string; message: string; } export interface ProjectNameAvailability { available: boolean; appName: string; repoName: string; githubOrg: string; conflicts: ProjectNameConflict[]; } export interface BootstrapDoneResult { repoName: string; owner: string; htmlUrl: string; cloneUrl: string; cloneUrlAuthed?: string; appName: string; type: ProjectType; githubOrg: string; infraApplied?: boolean; albPath?: string; ecsService?: string; ecrRepository?: string; appPublicUrl?: string; appEmbedUrl?: string; applicationId?: string; applicationHubVisible?: boolean; pushedAt?: string; deployStatus?: 'success' | 'failure' | 'timeout'; deployRunUrl?: string; liveUrlVerified?: boolean; } export type DeployPollStatus = 'pending' | 'running' | 'success' | 'failure'; export interface DeployPollResult { status: DeployPollStatus; conclusion?: string | null; htmlUrl?: string; runId?: number; detail?: string; } type StepHandler = (step: string, status: string, detail?: string) => void; export declare function fetchOrgTargets(apiUrl: string, apiKey: string): Promise; export declare function checkProjectAvailability(apiUrl: string, apiKey: string, opts: { name: string; type: ProjectType; provisionInfra: boolean; }): Promise; export declare function fetchDeployStatus(apiUrl: string, apiKey: string, opts: { owner: string; repo: string; startedAfter: string; }): Promise; export declare function waitForDeployComplete(apiUrl: string, apiKey: string, opts: { owner: string; repo: string; startedAfter: string; timeoutMs?: number; pollIntervalMs?: number; onProgress?: (detail: string) => void; }): Promise<{ status: 'success' | 'failure' | 'timeout'; htmlUrl?: string; detail?: string; }>; export declare function createProjectWithSse(apiUrl: string, apiKey: string, payload: CreateProjectPayload, onStep: StepHandler): Promise; export declare function printStep(step: string, status: string, detail?: string): void; export interface RegisteredApplicationResult { id: string; name: string; route: string; hubVisible: boolean; appPublicUrl?: string; appEmbedUrl?: string; } export declare function registerApplicationViaMs(apiUrl: string, apiKey: string, body: { name: string; type?: ProjectType; }): Promise; export declare function publishApplicationViaMs(apiUrl: string, apiKey: string, body: { name: string; }): Promise; export declare function hideApplicationViaMs(apiUrl: string, apiKey: string, body: { name: string; }): Promise; export {}; //# sourceMappingURL=bootstrap-client.d.ts.map