import { IVersionInfo, GitInfoInput, DeploymentInfoInput } from './types'; /** * Represents complete version information for a deployment */ export declare class VersionInfo implements IVersionInfo { /** * Create a VersionInfo instance from raw data */ static create(props: IVersionInfo): VersionInfo; /** * Create a VersionInfo instance from environment variables */ static fromEnvironment(env: { [key: string]: string; }): VersionInfo; /** * Create a VersionInfo instance from a JSON string */ static fromJson(json: string): VersionInfo; readonly version: string; readonly commitHash: string; readonly commitHashShort: string; readonly branch: string; readonly tag?: string; readonly commitsSinceTag?: number; readonly commitCount: number; readonly packageVersion?: string; readonly deployedAt: string; readonly deployedBy: string; readonly buildNumber?: string; readonly environment: string; readonly repository?: string; readonly pipelineVersion?: string; private constructor(); /** * Convert to plain version string */ toString(): string; /** * Convert to JSON string */ toJson(pretty?: boolean): string; /** * Convert to object */ toObject(): IVersionInfo; /** * Get formatted version for display */ displayVersion(): string; /** * Check if this version is from a tagged release */ taggedRelease(): boolean; /** * Check if this version is from the main branch */ mainBranch(): boolean; /** * Compare with another version * Returns: -1 if this < other, 0 if equal, 1 if this > other */ compare(other: VersionInfo): number; /** * Create a parameter name for SSM Parameter Store */ parameterName(template: string): string; /** * Create CloudFormation export name */ exportName(template: string): string; } /** * Builder class for creating VersionInfo instances */ export declare class VersionInfoBuilder { private props; /** * Set the version string */ version(version: string): this; /** * Set git information */ gitInfo(info: GitInfoInput): this; /** * Set package version */ packageVersion(version: string): this; /** * Set deployment metadata */ deploymentInfo(info: DeploymentInfoInput): this; /** * Set repository information */ repository(repo: string): this; /** * Set pipeline version */ pipelineVersion(version: string): this; /** * Build the VersionInfo instance */ create(): VersionInfo; }