/**
 * ADO Profile Resolver
 *
 * Resolves the correct ADO profile to use for sync operations.
 * Priority:
 * 1. Increment's stored profile (metadata.json -> external_sync.ado.profile)
 * 2. Global defaultProfile (config.json -> sync.defaultProfile)
 *
 * This allows each increment to sync to its designated ADO project
 * without requiring manual profile switching.
 *
 * The default profile is a FALLBACK, not a constraint. Bulk operations
 * iterate ALL profiles.
 *
 * Usage:
 * ```typescript
 * const resolver = await createAdoProfileResolver();
 * const profile = await resolver.resolveProfile('0093-my-increment');
 * // profile contains organization, project, PAT, etc.
 * ```
 *
 * @module ado-profile-resolver
 */
/**
 * ADO profile configuration
 */
export interface AdoProfileConfig {
    /**
     * Profile name (for display/logging)
     */
    profileName: string;
    /**
     * ADO organization name
     */
    organization: string;
    /**
     * ADO project name
     */
    project: string;
    /**
     * Display name (optional)
     */
    displayName?: string;
    /**
     * Area path (optional)
     */
    areaPath?: string;
    /**
     * Iteration path (optional)
     */
    iterationPath?: string;
}
/**
 * Profile resolution result
 */
export interface ProfileResolutionResult {
    /**
     * Whether resolution succeeded
     */
    success: boolean;
    /**
     * Resolved profile config (if success)
     */
    profile?: AdoProfileConfig;
    /**
     * Source of the profile
     */
    source?: 'increment' | 'global';
    /**
     * Error message (if failed)
     */
    error?: string;
    /**
     * Increment ID that was checked
     */
    incrementId?: string;
}
/**
 * ADO Profile Resolver
 */
export declare class AdoProfileResolver {
    private projectRoot;
    private configPath;
    private incrementsPath;
    constructor(projectRoot?: string);
    /**
     * Resolve the ADO profile for an increment
     *
     * Priority:
     * 1. Increment's metadata.json -> external_sync.ado.profile
     * 2. Config.json -> sync.defaultProfile
     *
     * @param incrementId - Increment ID (e.g., "0093-my-feature")
     * @returns Profile resolution result
     */
    resolveProfile(incrementId: string): Promise<ProfileResolutionResult>;
    /**
     * Get increment's stored ADO profile name
     *
     * @param incrementId - Increment ID
     * @returns Profile name or null if not set
     */
    getIncrementProfile(incrementId: string): Promise<string | null>;
    /**
     * Set increment's ADO profile
     *
     * Stores the profile name in the increment's metadata.json
     *
     * @param incrementId - Increment ID
     * @param profileName - Profile name to set
     */
    setIncrementProfile(incrementId: string, profileName: string): Promise<void>;
    /**
     * List available ADO profiles
     *
     * @returns Array of profile names
     */
    listAdoProfiles(): Promise<string[]>;
    /**
     * Load config.json
     */
    private loadConfig;
}
/**
 * Create an AdoProfileResolver instance
 *
 * @param projectRoot - Project root directory (defaults to cwd)
 * @returns AdoProfileResolver instance
 */
export declare function createAdoProfileResolver(projectRoot?: string): Promise<AdoProfileResolver>;
/**
 * Quick resolve: Get ADO profile for an increment
 *
 * @param incrementId - Increment ID
 * @param projectRoot - Project root directory
 * @returns Profile resolution result
 */
export declare function resolveAdoProfile(incrementId: string, projectRoot?: string): Promise<ProfileResolutionResult>;
export default AdoProfileResolver;
//# sourceMappingURL=ado-profile-resolver.d.ts.map