import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface RepositoryCollaboratorConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/github/r/repository_collaborator#id RepositoryCollaborator#id}
    *
    * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2.
    * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.
    */
    readonly id?: string;
    /**
    * The permission of the outside collaborator for the repository. Must be one of 'pull', 'push', 'maintain', 'triage' or 'admin' or the name of an existing custom repository role within the organization for organization-owned repositories. Must be 'push' for personal repositories. Defaults to 'push'.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/github/r/repository_collaborator#permission RepositoryCollaborator#permission}
    */
    readonly permission?: string;
    /**
    * Suppress plan diffs for triage and maintain. Defaults to 'false'.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/github/r/repository_collaborator#permission_diff_suppression RepositoryCollaborator#permission_diff_suppression}
    */
    readonly permissionDiffSuppression?: boolean | cdktf.IResolvable;
    /**
    * The GitHub repository
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/github/r/repository_collaborator#repository RepositoryCollaborator#repository}
    */
    readonly repository: string;
    /**
    * The user to add to the repository as a collaborator.
    *
    * Docs at Terraform Registry: {@link https://www.terraform.io/docs/providers/github/r/repository_collaborator#username RepositoryCollaborator#username}
    */
    readonly username: string;
}
/**
* Represents a {@link https://www.terraform.io/docs/providers/github/r/repository_collaborator github_repository_collaborator}
*/
export declare class RepositoryCollaborator extends cdktf.TerraformResource {
    static readonly tfResourceType = "github_repository_collaborator";
    /**
    * Create a new {@link https://www.terraform.io/docs/providers/github/r/repository_collaborator github_repository_collaborator} Resource
    *
    * @param scope The scope in which to define this construct
    * @param id The scoped construct ID. Must be unique amongst siblings in the same scope
    * @param options RepositoryCollaboratorConfig
    */
    constructor(scope: Construct, id: string, config: RepositoryCollaboratorConfig);
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get invitationId(): string;
    private _permission?;
    get permission(): string;
    set permission(value: string);
    resetPermission(): void;
    get permissionInput(): string | undefined;
    private _permissionDiffSuppression?;
    get permissionDiffSuppression(): boolean | cdktf.IResolvable;
    set permissionDiffSuppression(value: boolean | cdktf.IResolvable);
    resetPermissionDiffSuppression(): void;
    get permissionDiffSuppressionInput(): boolean | cdktf.IResolvable | undefined;
    private _repository?;
    get repository(): string;
    set repository(value: string);
    get repositoryInput(): string | undefined;
    private _username?;
    get username(): string;
    set username(value: string);
    get usernameInput(): string | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
}
