/**
 * Azure DevOps Resource Validator
 *
 * Validates and creates Azure DevOps resources (projects, teams, area paths).
 * Split from external-resource-validator.ts for maintainability.
 *
 * @module utils/validators/ado-validator
 */
import type { AzureDevOpsProject, AzureDevOpsTeam, AzureDevOpsAreaPath, AzureDevOpsValidationResult } from './types.js';
export type { AzureDevOpsProject, AzureDevOpsTeam, AzureDevOpsAreaPath, AzureDevOpsValidationResult };
export declare class AzureDevOpsResourceValidator {
    private pat;
    private organization;
    private project;
    private projects;
    private strategy;
    private teams;
    private areaPaths;
    private envPath;
    private configPath;
    constructor(envPath?: string, _options?: {
        readOnly?: boolean;
    });
    /**
     * Load .env file
     */
    private loadEnv;
    /**
     * Load config from .specweave/config.json
     */
    private loadConfig;
    /**
     * Update .env file with new values
     */
    private updateEnv;
    /**
     * Call Azure DevOps API
     */
    private callAzureDevOpsApi;
    /**
     * Fetch all Azure DevOps projects
     */
    fetchProjects(): Promise<AzureDevOpsProject[]>;
    /**
     * Check if project exists
     */
    checkProject(projectName: string): Promise<AzureDevOpsProject | null>;
    /**
     * Create new Azure DevOps project
     */
    createProject(projectName: string, description?: string): Promise<AzureDevOpsProject>;
    /**
     * Wait for project creation to complete
     */
    private waitForProjectCreation;
    /**
     * Check if area path exists in project (GET-only, no create)
     *
     * @param projectName - Project name
     * @param areaPath - Full area path (e.g., "MyProject\\Platform-Engineering") or leaf name
     * @returns Area path info if exists, null otherwise
     */
    checkAreaPathExists(projectName: string, areaPath: string): Promise<AzureDevOpsAreaPath | null>;
    /**
     * Fetch teams in project
     */
    fetchTeams(projectName: string): Promise<AzureDevOpsTeam[]>;
    /**
     * Create team in project
     */
    createTeam(projectName: string, teamName: string): Promise<AzureDevOpsTeam>;
    /**
     * Validate and fix Azure DevOps configuration
     */
    validate(): Promise<AzureDevOpsValidationResult>;
}
/**
 * Validate Jira resources
 */
/**
 * Validate Azure DevOps resources
 *
 * @param envPath - Path to .env file
 * @param options - Validation options
 * @param options.readOnly - If true, skip all create operations (for read-only permissions)
 */
export declare function validateAzureDevOpsResources(envPath?: string, options?: {
    readOnly?: boolean;
}): Promise<AzureDevOpsValidationResult>;
//# sourceMappingURL=ado-validator.d.ts.map