import type { VetraCloudEnvironmentState } from "../../document-models/vetra-cloud-environment/index.js";
export declare function toKebabCase(name: string): string;
/**
 * Build a unique infrastructure tenant ID.
 *
 * Format: `<subdomain>-<shortDocId>`
 *
 * The subdomain alone can collide (250k namespace), so we append the first 8
 * hex chars of the documentId to guarantee uniqueness.
 */
export declare function getTenantId(subdomain: string, documentId: string): string;
export declare function generateValuesYaml(state: VetraCloudEnvironmentState, documentId: string): string;
/**
 * Sync an environment's values to the gitops repo.
 *
 * Each call creates a fresh shallow clone, writes the values file, commits,
 * and pushes. The clone is always cleaned up afterwards. This eliminates all
 * shared working-tree state issues.
 *
 * A mutex serializes syncs within the same process to avoid redundant clones.
 * Cross-process / cross-pod push races are handled by pull-rebase-retry.
 */
export declare function syncEnvironment(state: VetraCloudEnvironmentState, documentId: string): Promise<void>;
/**
 * Remove a tenant's directory from the gitops repo.
 *
 * Called when an environment document is deleted. Removes the tenant
 * directory, commits, and pushes so ArgoCD/Flux tears down the deployment.
 */
export declare function deleteEnvironmentFromGitops(tenantId: string): Promise<void>;
//# sourceMappingURL=gitops.d.ts.map