export interface DeploymentEnvironment {
    id: string;
    name: string;
    type: 'development' | 'staging' | 'production' | 'custom';
    url?: string;
    branch?: string;
    autoDeployBranch?: string;
    variables: EnvironmentVariable[];
    status: EnvironmentStatus;
    lastDeployment?: Deployment;
    createdAt: string;
    updatedAt: string;
}
export interface EnvironmentVariable {
    key: string;
    value: string;
    encrypted?: boolean;
    description?: string;
}
export type EnvironmentStatus = 'active' | 'inactive' | 'deploying' | 'failed' | 'maintenance';
export interface Deployment {
    id: string;
    environmentId: string;
    version: string;
    commit?: string;
    branch?: string;
    author?: string;
    status: DeploymentStatus;
    type: DeploymentType;
    startedAt: string;
    completedAt?: string;
    duration?: number;
    logs?: DeploymentLog[];
    rollbackFrom?: string;
    metadata?: Record<string, any>;
}
export type DeploymentStatus = 'pending' | 'building' | 'deploying' | 'success' | 'failed' | 'rolled_back' | 'cancelled';
export type DeploymentType = 'manual' | 'auto' | 'rollback' | 'hotfix';
export interface DeploymentLog {
    timestamp: string;
    level: 'info' | 'warning' | 'error';
    message: string;
    details?: any;
}
export interface DeploymentConfig {
    projectId: string;
    provider: DeploymentProvider;
    settings: ProviderSettings;
    environments: DeploymentEnvironment[];
    hooks?: DeploymentHooks;
    healthChecks?: HealthCheck[];
}
export type DeploymentProvider = 'vercel' | 'netlify' | 'heroku' | 'aws' | 'docker' | 'kubernetes' | 'custom';
export interface ProviderSettings {
    apiKey?: string;
    projectName?: string;
    region?: string;
    cluster?: string;
    registry?: string;
    customCommand?: string;
    buildCommand?: string;
    outputDirectory?: string;
}
export interface DeploymentHooks {
    preDeploy?: string[];
    postDeploy?: string[];
    preRollback?: string[];
    postRollback?: string[];
}
export interface HealthCheck {
    name: string;
    type: 'http' | 'tcp' | 'custom';
    endpoint?: string;
    port?: number;
    expectedStatus?: number;
    timeout?: number;
    interval?: number;
    retries?: number;
    command?: string;
}
export interface DeploymentPlan {
    environment: string;
    version: string;
    changes: ChangeItem[];
    estimatedDuration: number;
    risks: Risk[];
    approvalRequired: boolean;
    rollbackPlan?: RollbackPlan;
}
export interface ChangeItem {
    type: 'feature' | 'bugfix' | 'config' | 'infrastructure';
    description: string;
    files?: string[];
    impact: 'low' | 'medium' | 'high';
}
export interface Risk {
    description: string;
    probability: 'low' | 'medium' | 'high';
    impact: 'low' | 'medium' | 'high';
    mitigation?: string;
}
export interface RollbackPlan {
    strategy: 'immediate' | 'gradual' | 'manual';
    targetVersion: string;
    steps: string[];
    estimatedDuration: number;
}
export interface DeploymentMetrics {
    totalDeployments: number;
    successRate: number;
    averageDuration: number;
    failureReasons: Record<string, number>;
    deploymentsByEnvironment: Record<string, number>;
    deploymentsByType: Record<DeploymentType, number>;
    recentDeployments: Deployment[];
}
export interface ReleaseNotes {
    version: string;
    date: string;
    changes: {
        features: string[];
        fixes: string[];
        breaking: string[];
        deprecated: string[];
    };
    contributors: string[];
    acknowledgments?: string[];
}
//# sourceMappingURL=types.d.ts.map