/** * Validators for Sqitch change and tag names according to the spec: * https://sqitch.org/docs/manual/sqitchchanges/ */ /** * Validate a change name according to Sqitch rules: * - ≥1 character * - Cannot contain whitespace * - First and last characters must not be punctuation (except _) * - Must not end in ~, ^, /, = or % followed by digits * - Disallowed characters anywhere: :, @, #, \ */ export declare function isValidChangeName(name: string): boolean; /** * Validate a tag name according to Sqitch rules: * - Same as change name rules * - Additionally, must not contain / */ export declare function isValidTagName(name: string): boolean; /** * Parse a reference that might include project qualifier and/or tag * Examples: * - "users_table" * - "@v1.0" * - "users_table@v1.0" * - "otherproj:users_table" * - "otherproj:@v1.2" * - "otherproj:users_table@v1.2" * - "40763784148fa190d75bad036730ef44d1c2eac6" * - "project:40763784148fa190d75bad036730ef44d1c2eac6" */ export interface ParsedReference { package?: string; change?: string; tag?: string; sha1?: string; symbolic?: 'HEAD' | 'ROOT'; relative?: { base: string; direction: '^' | '~'; count: number; }; } /** * Parse a reference string into its components */ export declare function parseReference(ref: string): ParsedReference | null; /** * Validate a dependency reference * Dependencies can be any valid reference format */ export declare function isValidDependency(dep: string): boolean;