export interface CodeCommitRepository {
    /** The name of the Amazon Web Services CodeCommit repository. For more information, see repositoryName in the Amazon Web Services CodeCommit API Reference. */
    Name: string;
}
export interface ThirdPartySourceRepository {
    /** The name of the third party source repository. */
    Name: string;
    /** The Amazon Resource Name (ARN) of an Amazon Web Services CodeStar Connections connection. Its format is arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id. For more informa */
    ConnectionArn: string;
    /** The owner of the repository. For a GitHub, GitHub Enterprise, or Bitbucket repository, this is the username for the account that owns the repository. For an S3 repository, this can be the username or  */
    Owner: string;
}
export interface S3Repository {
    /** The name of the repository in the S3 bucket. */
    Name: string;
    /** The name of the S3 bucket used for associating a new S3 repository. It must begin with codeguru-reviewer-. */
    BucketName: string;
}
export interface Repository {
    /** Information about an Amazon Web Services CodeCommit repository. */
    CodeCommit?: CodeCommitRepository;
    /** Information about a Bitbucket repository. */
    Bitbucket?: ThirdPartySourceRepository;
    /** Information about a GitHub Enterprise Server repository. */
    GitHubEnterpriseServer?: ThirdPartySourceRepository;
    S3Bucket?: S3Repository;
}
export interface KMSKeyDetails {
    /** The ID of the Amazon Web Services KMS key that is associated with a repository association. */
    KMSKeyId?: string;
    /** The encryption option for a repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed (CUSTOMER_MANAGED_CMK). */
    EncryptionOption?: 'AWS_OWNED_CMK' | 'CUSTOMER_MANAGED_CMK';
}
export interface RepositoryAnalysis {
    /** A SourceCodeType that specifies the tip of a branch in an associated repository. */
    RepositoryHead?: any;
    SourceCodeType?: any;
}
export interface CodeReviewType {
    /** A code review that analyzes all code under a specified branch in an associated repository. The associated repository is specified using its ARN in CreateCodeReview. */
    RepositoryAnalysis: RepositoryAnalysis;
    /** They types of analysis performed during a repository analysis or a pull request review. You can specify either Security, CodeQuality, or both. */
    AnalysisTypes?: 'Security' | 'CodeQuality'[];
}
export interface AssociateRepositoryInput {
    /** The repository to associate. */
    Repository: Repository;
    /** Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate repository associations if there are failures and retries. */
    ClientRequestToken?: string;
    /** A KMSKeyDetails object that contains: The encryption option for this repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (AWS_OWNED_CMK) or customer managed  */
    KMSKeyDetails?: KMSKeyDetails;
    /** An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts: A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are c */
    Tags?: Record<string, string>;
}
export interface CreateCodeReviewInput {
    /** The name of the code review. The name of each code review in your Amazon Web Services account must be unique. */
    Name: string;
    /** The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations. A code review can only be created on an associated repository. This */
    RepositoryAssociationArn: string;
    /** The type of code review to create. This is specified using a CodeReviewType object. You can create a code review only of type RepositoryAnalysis. */
    Type: CodeReviewType;
    /** Amazon CodeGuru Reviewer uses this value to prevent the accidental creation of duplicate code reviews if there are failures and retries. */
    ClientRequestToken?: string;
}
export interface DescribeCodeReviewInput {
    /** The Amazon Resource Name (ARN) of the CodeReview object. */
    CodeReviewArn: string;
}
export interface DescribeRecommendationFeedbackInput {
    /** The Amazon Resource Name (ARN) of the CodeReview object. */
    CodeReviewArn: string;
    /** The recommendation ID that can be used to track the provided recommendations and then to collect the feedback. */
    RecommendationId: string;
    /** Optional parameter to describe the feedback for a given user. If this is not supplied, it defaults to the user making the request. The UserId is an IAM principal that can be specified as an Amazon Web */
    UserId?: string;
}
export interface DescribeRepositoryAssociationInput {
    /** The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations. */
    AssociationArn: string;
}
export interface DisassociateRepositoryInput {
    /** The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations. */
    AssociationArn: string;
}
export interface ListCodeReviewsInput {
    /** The type of code reviews to list in the response. */
    Type: 'PullRequest' | 'RepositoryAnalysis';
    /** The maximum number of results that are returned per call. The default is 100. */
    MaxResults?: number;
    /** If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. K */
    NextToken?: string;
    /** List of provider types for filtering that needs to be applied before displaying the result. For example, providerTypes=[GitHub] lists code reviews from GitHub. */
    ProviderTypes?: 'CodeCommit' | 'GitHub' | 'Bitbucket' | 'GitHubEnterpriseServer' | 'S3Bucket'[];
    /** List of repository names for filtering that needs to be applied before displaying the result. */
    RepositoryNames?: string[];
    /** List of states for filtering that needs to be applied before displaying the result. For example, states=[Pending] lists code reviews in the Pending state. The valid code review states are: Completed:  */
    States?: 'Completed' | 'Pending' | 'Failed' | 'Deleting'[];
}
export interface ListRecommendationFeedbackInput {
    /** The Amazon Resource Name (ARN) of the CodeReview object. */
    CodeReviewArn: string;
    /** The maximum number of results that are returned per call. The default is 100. */
    MaxResults?: number;
    /** If nextToken is returned, there are more results available. The value of nextToken is a unique pagination token for each page. Make the call again using the returned token to retrieve the next page. K */
    NextToken?: string;
    /** Used to query the recommendation feedback for a given recommendation. */
    RecommendationIds?: string[];
    /** An Amazon Web Services user's account ID or Amazon Resource Name (ARN). Use this ID to query the recommendation feedback for a code review from that user. The UserId is an IAM principal that can be sp */
    UserIds?: string[];
}
export interface ListRecommendationsInput {
    /** The Amazon Resource Name (ARN) of the CodeReview object. */
    CodeReviewArn: string;
    /** The maximum number of results that are returned per call. The default is 100. */
    MaxResults?: number;
    /** Pagination token. */
    NextToken?: string;
}
export interface ListRepositoryAssociationsInput {
    /** The maximum number of repository association results returned by ListRepositoryAssociations in paginated output. When this parameter is used, ListRepositoryAssociations only returns maxResults results */
    MaxResults?: number;
    /** List of repository names to use as a filter. */
    Names?: string[];
    /** The nextToken value returned from a previous paginated ListRepositoryAssociations request where maxResults was used and the results exceeded the value of that parameter. Pagination continues from the  */
    NextToken?: string;
    /** List of owners to use as a filter. For Amazon Web Services CodeCommit, it is the name of the CodeCommit account that was used to associate the repository. For other repository source providers, such a */
    Owners?: string[];
    /** List of provider types to use as a filter. */
    ProviderTypes?: 'CodeCommit' | 'GitHub' | 'Bitbucket' | 'GitHubEnterpriseServer' | 'S3Bucket'[];
    /** List of repository association states to use as a filter. The valid repository association states are: Associated: The repository association is complete. Associating: CodeGuru Reviewer is: Setting up */
    States?: 'Associated' | 'Associating' | 'Failed' | 'Disassociating' | 'Disassociated'[];
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations. */
    resourceArn: string;
}
export interface PutRecommendationFeedbackInput {
    /** The Amazon Resource Name (ARN) of the CodeReview object. */
    CodeReviewArn: string;
    /** List for storing reactions. Reactions are utf-8 text code for emojis. If you send an empty list it clears all your feedback. */
    Reactions: 'ThumbsUp' | 'ThumbsDown'[];
    /** The recommendation ID that can be used to track the provided recommendations and then to collect the feedback. */
    RecommendationId: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations. */
    resourceArn: string;
    /** An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts: A tag key (for example, CostCenter, Environment, Project, or Secret). Tag keys are c */
    Tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the RepositoryAssociation object. You can retrieve this ARN by calling ListRepositoryAssociations. */
    resourceArn: string;
    /** A list of the keys for each tag you want to remove from an associated repository. */
    TagKeys: string[];
}
/** CodeGuru Reviewer service binding for Step Functions SDK integrations. */
export declare class CodeGuruReviewer {
    constructor();
    associateRepository<T>(params: AssociateRepositoryInput): Promise<T>;
    createCodeReview<T>(params: CreateCodeReviewInput): Promise<T>;
    describeCodeReview<T>(params: DescribeCodeReviewInput): Promise<T>;
    describeRecommendationFeedback<T>(params: DescribeRecommendationFeedbackInput): Promise<T>;
    describeRepositoryAssociation<T>(params: DescribeRepositoryAssociationInput): Promise<T>;
    disassociateRepository<T>(params: DisassociateRepositoryInput): Promise<T>;
    listCodeReviews<T>(params: ListCodeReviewsInput): Promise<T>;
    listRecommendationFeedback<T>(params: ListRecommendationFeedbackInput): Promise<T>;
    listRecommendations<T>(params: ListRecommendationsInput): Promise<T>;
    listRepositoryAssociations<T>(params: ListRepositoryAssociationsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    putRecommendationFeedback<T>(params: PutRecommendationFeedbackInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
}
//# sourceMappingURL=CodeGuruReviewer.d.ts.map