import basem = require('./ClientApiBases');
import VsoBaseInterfaces = require('./interfaces/common/VsoBaseInterfaces');
import CIXInterfaces = require("./interfaces/CIXInterfaces");
export interface ICixApi extends basem.ClientApiBase {
    getConfigurations(project: string, repositoryType?: string, repositoryId?: string, branch?: string, serviceConnectionId?: string): Promise<CIXInterfaces.ConfigurationFile[]>;
    createProjectConnection(createConnectionInputs: CIXInterfaces.CreatePipelineConnectionInputs, project: string): Promise<CIXInterfaces.PipelineConnection>;
    getDetectedBuildFrameworks(project: string, repositoryType?: string, repositoryId?: string, branch?: string, detectionType?: CIXInterfaces.BuildFrameworkDetectionType, serviceConnectionId?: string): Promise<CIXInterfaces.DetectedBuildFramework[]>;
    createResources(creationParameters: {
        [key: string]: CIXInterfaces.ResourceCreationParameter;
    }, project: string): Promise<CIXInterfaces.CreatedResources>;
}
export declare class CixApi extends basem.ClientApiBase implements ICixApi {
    constructor(baseUrl: string, handlers: VsoBaseInterfaces.IRequestHandler[], options?: VsoBaseInterfaces.IRequestOptions);
    /**
     * Gets a list of existing configuration files for the given repository.
     *
     * @param {string} project - Project ID or project name
     * @param {string} repositoryType - The type of the repository such as GitHub, TfsGit (i.e. Azure Repos), Bitbucket, etc.
     * @param {string} repositoryId - The vendor-specific identifier or the name of the repository, e.g. Microsoft/vscode (GitHub) or e9d82045-ddba-4e01-a63d-2ab9f040af62 (Azure Repos)
     * @param {string} branch - The repository branch where to look for the configuration file.
     * @param {string} serviceConnectionId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TfsGit (i.e. Azure Repos).
     */
    getConfigurations(project: string, repositoryType?: string, repositoryId?: string, branch?: string, serviceConnectionId?: string): Promise<CIXInterfaces.ConfigurationFile[]>;
    /**
     * Creates a new Pipeline connection between the provider installation and the specified project. Returns the PipelineConnection object created.
     *
     * @param {CIXInterfaces.CreatePipelineConnectionInputs} createConnectionInputs
     * @param {string} project
     */
    createProjectConnection(createConnectionInputs: CIXInterfaces.CreatePipelineConnectionInputs, project: string): Promise<CIXInterfaces.PipelineConnection>;
    /**
     * Returns a list of build frameworks that best match the given repository based on its contents.
     *
     * @param {string} project - Project ID or project name
     * @param {string} repositoryType - The type of the repository such as GitHub, TfsGit (i.e. Azure Repos), Bitbucket, etc.
     * @param {string} repositoryId - The vendor-specific identifier or the name of the repository, e.g. Microsoft/vscode (GitHub) or e9d82045-ddba-4e01-a63d-2ab9f040af62 (Azure Repos)
     * @param {string} branch - The repository branch to detect build frameworks for.
     * @param {CIXInterfaces.BuildFrameworkDetectionType} detectionType
     * @param {string} serviceConnectionId - If specified, the ID of the service endpoint to query. Can only be omitted for providers that do not use service endpoints, e.g. TfsGit (i.e. Azure Repos).
     */
    getDetectedBuildFrameworks(project: string, repositoryType?: string, repositoryId?: string, branch?: string, detectionType?: CIXInterfaces.BuildFrameworkDetectionType, serviceConnectionId?: string): Promise<CIXInterfaces.DetectedBuildFramework[]>;
    /**
     * @param {{ [key: string] : CIXInterfaces.ResourceCreationParameter; }} creationParameters
     * @param {string} project - Project ID or project name
     */
    createResources(creationParameters: {
        [key: string]: CIXInterfaces.ResourceCreationParameter;
    }, project: string): Promise<CIXInterfaces.CreatedResources>;
}
