import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciDevopsRepositorySettingConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/devops_repository_setting#repository_id DataOciDevopsRepositorySetting#repository_id}
    */
    readonly repositoryId: string;
}
export interface DataOciDevopsRepositorySettingApprovalRulesItemsReviewers {
}
export declare function dataOciDevopsRepositorySettingApprovalRulesItemsReviewersToTerraform(struct?: DataOciDevopsRepositorySettingApprovalRulesItemsReviewers): any;
export declare function dataOciDevopsRepositorySettingApprovalRulesItemsReviewersToHclTerraform(struct?: DataOciDevopsRepositorySettingApprovalRulesItemsReviewers): any;
export declare class DataOciDevopsRepositorySettingApprovalRulesItemsReviewersOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciDevopsRepositorySettingApprovalRulesItemsReviewers | undefined;
    set internalValue(value: DataOciDevopsRepositorySettingApprovalRulesItemsReviewers | undefined);
    get principalId(): string;
    get principalName(): string;
    get principalState(): string;
    get principalType(): string;
}
export declare class DataOciDevopsRepositorySettingApprovalRulesItemsReviewersList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciDevopsRepositorySettingApprovalRulesItemsReviewersOutputReference;
}
export interface DataOciDevopsRepositorySettingApprovalRulesItems {
}
export declare function dataOciDevopsRepositorySettingApprovalRulesItemsToTerraform(struct?: DataOciDevopsRepositorySettingApprovalRulesItems): any;
export declare function dataOciDevopsRepositorySettingApprovalRulesItemsToHclTerraform(struct?: DataOciDevopsRepositorySettingApprovalRulesItems): any;
export declare class DataOciDevopsRepositorySettingApprovalRulesItemsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciDevopsRepositorySettingApprovalRulesItems | undefined;
    set internalValue(value: DataOciDevopsRepositorySettingApprovalRulesItems | undefined);
    get destinationBranch(): string;
    get minApprovalsCount(): number;
    get name(): string;
    private _reviewers;
    get reviewers(): DataOciDevopsRepositorySettingApprovalRulesItemsReviewersList;
}
export declare class DataOciDevopsRepositorySettingApprovalRulesItemsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciDevopsRepositorySettingApprovalRulesItemsOutputReference;
}
export interface DataOciDevopsRepositorySettingApprovalRules {
}
export declare function dataOciDevopsRepositorySettingApprovalRulesToTerraform(struct?: DataOciDevopsRepositorySettingApprovalRules): any;
export declare function dataOciDevopsRepositorySettingApprovalRulesToHclTerraform(struct?: DataOciDevopsRepositorySettingApprovalRules): any;
export declare class DataOciDevopsRepositorySettingApprovalRulesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciDevopsRepositorySettingApprovalRules | undefined;
    set internalValue(value: DataOciDevopsRepositorySettingApprovalRules | undefined);
    private _items;
    get items(): DataOciDevopsRepositorySettingApprovalRulesItemsList;
}
export declare class DataOciDevopsRepositorySettingApprovalRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciDevopsRepositorySettingApprovalRulesOutputReference;
}
export interface DataOciDevopsRepositorySettingMergeChecks {
}
export declare function dataOciDevopsRepositorySettingMergeChecksToTerraform(struct?: DataOciDevopsRepositorySettingMergeChecks): any;
export declare function dataOciDevopsRepositorySettingMergeChecksToHclTerraform(struct?: DataOciDevopsRepositorySettingMergeChecks): any;
export declare class DataOciDevopsRepositorySettingMergeChecksOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciDevopsRepositorySettingMergeChecks | undefined;
    set internalValue(value: DataOciDevopsRepositorySettingMergeChecks | undefined);
    get lastBuildSucceeded(): string;
}
export declare class DataOciDevopsRepositorySettingMergeChecksList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciDevopsRepositorySettingMergeChecksOutputReference;
}
export interface DataOciDevopsRepositorySettingMergeSettings {
}
export declare function dataOciDevopsRepositorySettingMergeSettingsToTerraform(struct?: DataOciDevopsRepositorySettingMergeSettings): any;
export declare function dataOciDevopsRepositorySettingMergeSettingsToHclTerraform(struct?: DataOciDevopsRepositorySettingMergeSettings): any;
export declare class DataOciDevopsRepositorySettingMergeSettingsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): DataOciDevopsRepositorySettingMergeSettings | undefined;
    set internalValue(value: DataOciDevopsRepositorySettingMergeSettings | undefined);
    get allowedMergeStrategies(): string[];
    get defaultMergeStrategy(): string;
}
export declare class DataOciDevopsRepositorySettingMergeSettingsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): DataOciDevopsRepositorySettingMergeSettingsOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/devops_repository_setting oci_devops_repository_setting}
*/
export declare class DataOciDevopsRepositorySetting extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_devops_repository_setting";
    /**
    * Generates CDKTF code for importing a DataOciDevopsRepositorySetting resource upon running "cdktf plan <stack-name>"
    * @param scope The scope in which to define this construct
    * @param importToId The construct id used in the generated config for the DataOciDevopsRepositorySetting to import
    * @param importFromId The id of the existing DataOciDevopsRepositorySetting that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/devops_repository_setting#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciDevopsRepositorySetting to import is found
    */
    static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
    /**
    * Create a new {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/devops_repository_setting oci_devops_repository_setting} Data Source
    *
    * @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 DataOciDevopsRepositorySettingConfig
    */
    constructor(scope: Construct, id: string, config: DataOciDevopsRepositorySettingConfig);
    private _approvalRules;
    get approvalRules(): DataOciDevopsRepositorySettingApprovalRulesList;
    get id(): string;
    private _mergeChecks;
    get mergeChecks(): DataOciDevopsRepositorySettingMergeChecksList;
    private _mergeSettings;
    get mergeSettings(): DataOciDevopsRepositorySettingMergeSettingsList;
    private _repositoryId?;
    get repositoryId(): string;
    set repositoryId(value: string);
    get repositoryIdInput(): string | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
