import * as git from "azure-devops-node-api/GitApi";
import * as workItem from "azure-devops-node-api/WorkItemTrackingApi";
import * as iteration from "azure-devops-node-api/WorkApi";
import { IConnectAzDevOps, IAzDevOpsManagementMethods, IIterationDetails } from "./azDevOps.interface";
export declare class AzDevOpsManagement implements IAzDevOpsManagementMethods {
    header: {
        "Content-Type": string;
    };
    /**
     * Get connection to Azure DevOps
     */
    getConnection(): Promise<IConnectAzDevOps>;
    /**
     * Get current iteration of team
     * @param iterationConnection (connection)
     */
    getCurrentIteration(iterationConnection: iteration.IWorkApi): Promise<IIterationDetails>;
    /**
     * Check if already exists a user story with title = userStoryName
     * @param iterationConnection (connection)
     * @param currentIteration (path of current iteration)
     */
    checkIfUSAlreadyExist(workItemConnection: workItem.IWorkItemTrackingApi, currentIteration: string): Promise<number>;
    /**
     * Create a new User Story
     * @param workItemConnection (connection)
     * @param currentIteration (path of current iteration)
     */
    createUserStory(workItemConnection: workItem.IWorkItemTrackingApi, currentIteration: string): Promise<number>;
    /**
     * Create commit and push to specified repository
     * @param gitConnection (connection)
     * @param key (package of config.packages)
     * @param path (array with paths changed)
     * @param repo (repository to make the commit and push)
     */
    createCommitsAndPush(gitConnection: git.IGitApi, key: string, path: string[], repo: string): Promise<string>;
    /**
     * Create pull request
     * @param gitConnection (connection)
     * @param repo (repository to create a pull request)
     * @param userStoryId (id of user story to associate)
     */
    createPR(gitConnection: git.IGitApi, repo: string, userStoryId: number): Promise<number>;
    /**
     * Update pull request
     * @param gitConnection (connection)
     * @param pullRequestId (id of pull request to be updated)
     * @param repo (repository where is located the pull request to be updated)
     * @param azDevOpsUserId (id of Azure DevOps user)
     */
    updatePR(gitConnection: git.IGitApi, pullRequestId: number, repo: string, azDevOpsUserId: string): Promise<number>;
    /**
     * JSON to create a new user story
     * @param currentIteration (path of current iteration)
     */
    private createUserStoryJSON;
    /**
     * JSON to identify changes
     * @param path (path changed)
     * @param key (package in config.packages)
     * @param data (content of path changed)
     */
    private createChanges;
    /**
     * JSON to create a new commit
     * @param changesArray (array with changes)
     */
    private createCommitJSON;
    /**
     * JSON to create a new push
     * @param commits (commit to make push)
     * @param oldObjectId (id of last commit)
     */
    private createPushJSON;
    /**
     * JSON to create a new pull request
     * @param lastMergeTargetCommit (id of last commit merged)
     * @param repo (repository to create a pull request)
     * @param userStoryId (id of user story to associate)
     */
    private createPullRequestJSON;
    /**
     * JSON to update the pull request
     * Set auto-complete
     * @param azDevOpsUserId (id of person to set pull request to be auto-completed and approve pull request)
     */
    private updatePullRequestJSON;
}
