export type DeployProvider = 'vercel' | 'netlify' | 'cloudflare-pages' | 'fly' | 'railway';
export interface DeployTargetConfig {
    provider: DeployProvider;
    /** Provider-specific token or credentials */
    token: string;
    /** Optional project ID for the provider (e.g. Vercel project ID) */
    projectId?: string;
    /** Optional team/org scope */
    team?: string;
    /** Production or preview by default */
    defaultEnvironment?: 'production' | 'preview';
}
export interface DeployRequestInput {
    projectPath: string;
    specId?: string;
    provider: DeployProvider;
    environment?: 'production' | 'preview';
}
export interface DeploymentRecord {
    id: string;
    provider: DeployProvider;
    specId?: string;
    url?: string;
    status: 'pending' | 'building' | 'ready' | 'error' | 'cancelled';
    createdAt: string;
    finishedAt?: string;
    errorMessage?: string;
}
export interface DeployConfigFile {
    configs: Partial<Record<DeployProvider, DeployTargetConfig>>;
    deployments: DeploymentRecord[];
}
export interface VercelDeployment {
    uid: string;
    url?: string;
    state?: string;
    readyState?: string;
}
export interface NetlifyDeployment {
    id: string;
    url?: string;
    ssl_url?: string;
    state?: string;
}
export interface CloudflarePagesDeployment {
    id: string;
    url?: string;
    latest_stage?: {
        name: string;
        status: string;
    };
    stages?: {
        name: string;
        status: string;
    }[];
}
export interface RailwayDeployment {
    id: string;
    status?: string;
    url?: string;
}
export interface FlyMachine {
    id: string;
    state?: string;
}
export interface ConfigureDeployTargetInput {
    projectPath: string;
    provider: DeployProvider;
    token: string;
    projectId?: string;
    team?: string;
}
//# sourceMappingURL=deploy.d.ts.map