import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DataOciOspGatewayAddressRuleConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/osp_gateway_address_rule#compartment_id DataOciOspGatewayAddressRule#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/osp_gateway_address_rule#country_code DataOciOspGatewayAddressRule#country_code}
    */
    readonly countryCode: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/osp_gateway_address_rule#id DataOciOspGatewayAddressRule#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;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/osp_gateway_address_rule#osp_home_region DataOciOspGatewayAddressRule#osp_home_region}
    */
    readonly ospHomeRegion: string;
}
export interface DataOciOspGatewayAddressRuleAddressFieldsFormat {
}
export declare function dataOciOspGatewayAddressRuleAddressFieldsFormatToTerraform(struct?: DataOciOspGatewayAddressRuleAddressFieldsFormat): any;
export declare function dataOciOspGatewayAddressRuleAddressFieldsFormatToHclTerraform(struct?: DataOciOspGatewayAddressRuleAddressFieldsFormat): any;
export declare class DataOciOspGatewayAddressRuleAddressFieldsFormatOutputReference 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(): DataOciOspGatewayAddressRuleAddressFieldsFormat | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleAddressFieldsFormat | undefined);
    get example(): string;
    get value(): string;
}
export declare class DataOciOspGatewayAddressRuleAddressFieldsFormatList 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): DataOciOspGatewayAddressRuleAddressFieldsFormatOutputReference;
}
export interface DataOciOspGatewayAddressRuleAddressFieldsLabel {
}
export declare function dataOciOspGatewayAddressRuleAddressFieldsLabelToTerraform(struct?: DataOciOspGatewayAddressRuleAddressFieldsLabel): any;
export declare function dataOciOspGatewayAddressRuleAddressFieldsLabelToHclTerraform(struct?: DataOciOspGatewayAddressRuleAddressFieldsLabel): any;
export declare class DataOciOspGatewayAddressRuleAddressFieldsLabelOutputReference 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(): DataOciOspGatewayAddressRuleAddressFieldsLabel | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleAddressFieldsLabel | undefined);
    get example(): string;
    get value(): string;
}
export declare class DataOciOspGatewayAddressRuleAddressFieldsLabelList 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): DataOciOspGatewayAddressRuleAddressFieldsLabelOutputReference;
}
export interface DataOciOspGatewayAddressRuleAddressFields {
}
export declare function dataOciOspGatewayAddressRuleAddressFieldsToTerraform(struct?: DataOciOspGatewayAddressRuleAddressFields): any;
export declare function dataOciOspGatewayAddressRuleAddressFieldsToHclTerraform(struct?: DataOciOspGatewayAddressRuleAddressFields): any;
export declare class DataOciOspGatewayAddressRuleAddressFieldsOutputReference 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(): DataOciOspGatewayAddressRuleAddressFields | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleAddressFields | undefined);
    private _format;
    get format(): DataOciOspGatewayAddressRuleAddressFieldsFormatList;
    get isRequired(): cdktf.IResolvable;
    private _label;
    get label(): DataOciOspGatewayAddressRuleAddressFieldsLabelList;
    get language(): string;
    get name(): string;
}
export declare class DataOciOspGatewayAddressRuleAddressFieldsList 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): DataOciOspGatewayAddressRuleAddressFieldsOutputReference;
}
export interface DataOciOspGatewayAddressRuleAddress {
}
export declare function dataOciOspGatewayAddressRuleAddressToTerraform(struct?: DataOciOspGatewayAddressRuleAddress): any;
export declare function dataOciOspGatewayAddressRuleAddressToHclTerraform(struct?: DataOciOspGatewayAddressRuleAddress): any;
export declare class DataOciOspGatewayAddressRuleAddressOutputReference 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(): DataOciOspGatewayAddressRuleAddress | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleAddress | undefined);
    private _fields;
    get fields(): DataOciOspGatewayAddressRuleAddressFieldsList;
    get thirdPartyValidation(): string;
}
export declare class DataOciOspGatewayAddressRuleAddressList 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): DataOciOspGatewayAddressRuleAddressOutputReference;
}
export interface DataOciOspGatewayAddressRuleContactFieldsFormat {
}
export declare function dataOciOspGatewayAddressRuleContactFieldsFormatToTerraform(struct?: DataOciOspGatewayAddressRuleContactFieldsFormat): any;
export declare function dataOciOspGatewayAddressRuleContactFieldsFormatToHclTerraform(struct?: DataOciOspGatewayAddressRuleContactFieldsFormat): any;
export declare class DataOciOspGatewayAddressRuleContactFieldsFormatOutputReference 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(): DataOciOspGatewayAddressRuleContactFieldsFormat | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleContactFieldsFormat | undefined);
    get example(): string;
    get value(): string;
}
export declare class DataOciOspGatewayAddressRuleContactFieldsFormatList 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): DataOciOspGatewayAddressRuleContactFieldsFormatOutputReference;
}
export interface DataOciOspGatewayAddressRuleContactFieldsLabel {
}
export declare function dataOciOspGatewayAddressRuleContactFieldsLabelToTerraform(struct?: DataOciOspGatewayAddressRuleContactFieldsLabel): any;
export declare function dataOciOspGatewayAddressRuleContactFieldsLabelToHclTerraform(struct?: DataOciOspGatewayAddressRuleContactFieldsLabel): any;
export declare class DataOciOspGatewayAddressRuleContactFieldsLabelOutputReference 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(): DataOciOspGatewayAddressRuleContactFieldsLabel | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleContactFieldsLabel | undefined);
    get example(): string;
    get value(): string;
}
export declare class DataOciOspGatewayAddressRuleContactFieldsLabelList 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): DataOciOspGatewayAddressRuleContactFieldsLabelOutputReference;
}
export interface DataOciOspGatewayAddressRuleContactFields {
}
export declare function dataOciOspGatewayAddressRuleContactFieldsToTerraform(struct?: DataOciOspGatewayAddressRuleContactFields): any;
export declare function dataOciOspGatewayAddressRuleContactFieldsToHclTerraform(struct?: DataOciOspGatewayAddressRuleContactFields): any;
export declare class DataOciOspGatewayAddressRuleContactFieldsOutputReference 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(): DataOciOspGatewayAddressRuleContactFields | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleContactFields | undefined);
    private _format;
    get format(): DataOciOspGatewayAddressRuleContactFieldsFormatList;
    get isRequired(): cdktf.IResolvable;
    private _label;
    get label(): DataOciOspGatewayAddressRuleContactFieldsLabelList;
    get language(): string;
    get name(): string;
}
export declare class DataOciOspGatewayAddressRuleContactFieldsList 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): DataOciOspGatewayAddressRuleContactFieldsOutputReference;
}
export interface DataOciOspGatewayAddressRuleContact {
}
export declare function dataOciOspGatewayAddressRuleContactToTerraform(struct?: DataOciOspGatewayAddressRuleContact): any;
export declare function dataOciOspGatewayAddressRuleContactToHclTerraform(struct?: DataOciOspGatewayAddressRuleContact): any;
export declare class DataOciOspGatewayAddressRuleContactOutputReference 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(): DataOciOspGatewayAddressRuleContact | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleContact | undefined);
    private _fields;
    get fields(): DataOciOspGatewayAddressRuleContactFieldsList;
}
export declare class DataOciOspGatewayAddressRuleContactList 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): DataOciOspGatewayAddressRuleContactOutputReference;
}
export interface DataOciOspGatewayAddressRuleTaxFieldsFormat {
}
export declare function dataOciOspGatewayAddressRuleTaxFieldsFormatToTerraform(struct?: DataOciOspGatewayAddressRuleTaxFieldsFormat): any;
export declare function dataOciOspGatewayAddressRuleTaxFieldsFormatToHclTerraform(struct?: DataOciOspGatewayAddressRuleTaxFieldsFormat): any;
export declare class DataOciOspGatewayAddressRuleTaxFieldsFormatOutputReference 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(): DataOciOspGatewayAddressRuleTaxFieldsFormat | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleTaxFieldsFormat | undefined);
    get example(): string;
    get value(): string;
}
export declare class DataOciOspGatewayAddressRuleTaxFieldsFormatList 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): DataOciOspGatewayAddressRuleTaxFieldsFormatOutputReference;
}
export interface DataOciOspGatewayAddressRuleTaxFieldsLabel {
}
export declare function dataOciOspGatewayAddressRuleTaxFieldsLabelToTerraform(struct?: DataOciOspGatewayAddressRuleTaxFieldsLabel): any;
export declare function dataOciOspGatewayAddressRuleTaxFieldsLabelToHclTerraform(struct?: DataOciOspGatewayAddressRuleTaxFieldsLabel): any;
export declare class DataOciOspGatewayAddressRuleTaxFieldsLabelOutputReference 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(): DataOciOspGatewayAddressRuleTaxFieldsLabel | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleTaxFieldsLabel | undefined);
    get example(): string;
    get value(): string;
}
export declare class DataOciOspGatewayAddressRuleTaxFieldsLabelList 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): DataOciOspGatewayAddressRuleTaxFieldsLabelOutputReference;
}
export interface DataOciOspGatewayAddressRuleTaxFields {
}
export declare function dataOciOspGatewayAddressRuleTaxFieldsToTerraform(struct?: DataOciOspGatewayAddressRuleTaxFields): any;
export declare function dataOciOspGatewayAddressRuleTaxFieldsToHclTerraform(struct?: DataOciOspGatewayAddressRuleTaxFields): any;
export declare class DataOciOspGatewayAddressRuleTaxFieldsOutputReference 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(): DataOciOspGatewayAddressRuleTaxFields | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleTaxFields | undefined);
    private _format;
    get format(): DataOciOspGatewayAddressRuleTaxFieldsFormatList;
    get isRequired(): cdktf.IResolvable;
    private _label;
    get label(): DataOciOspGatewayAddressRuleTaxFieldsLabelList;
    get language(): string;
    get name(): string;
}
export declare class DataOciOspGatewayAddressRuleTaxFieldsList 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): DataOciOspGatewayAddressRuleTaxFieldsOutputReference;
}
export interface DataOciOspGatewayAddressRuleTaxValueSet {
}
export declare function dataOciOspGatewayAddressRuleTaxValueSetToTerraform(struct?: DataOciOspGatewayAddressRuleTaxValueSet): any;
export declare function dataOciOspGatewayAddressRuleTaxValueSetToHclTerraform(struct?: DataOciOspGatewayAddressRuleTaxValueSet): any;
export declare class DataOciOspGatewayAddressRuleTaxValueSetOutputReference 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(): DataOciOspGatewayAddressRuleTaxValueSet | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleTaxValueSet | undefined);
    get name(): string;
    get value(): string;
}
export declare class DataOciOspGatewayAddressRuleTaxValueSetList 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): DataOciOspGatewayAddressRuleTaxValueSetOutputReference;
}
export interface DataOciOspGatewayAddressRuleTax {
}
export declare function dataOciOspGatewayAddressRuleTaxToTerraform(struct?: DataOciOspGatewayAddressRuleTax): any;
export declare function dataOciOspGatewayAddressRuleTaxToHclTerraform(struct?: DataOciOspGatewayAddressRuleTax): any;
export declare class DataOciOspGatewayAddressRuleTaxOutputReference 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(): DataOciOspGatewayAddressRuleTax | undefined;
    set internalValue(value: DataOciOspGatewayAddressRuleTax | undefined);
    private _fields;
    get fields(): DataOciOspGatewayAddressRuleTaxFieldsList;
    private _valueSet;
    get valueSet(): DataOciOspGatewayAddressRuleTaxValueSetList;
}
export declare class DataOciOspGatewayAddressRuleTaxList 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): DataOciOspGatewayAddressRuleTaxOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/osp_gateway_address_rule oci_osp_gateway_address_rule}
*/
export declare class DataOciOspGatewayAddressRule extends cdktf.TerraformDataSource {
    static readonly tfResourceType = "oci_osp_gateway_address_rule";
    /**
    * Generates CDKTF code for importing a DataOciOspGatewayAddressRule 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 DataOciOspGatewayAddressRule to import
    * @param importFromId The id of the existing DataOciOspGatewayAddressRule that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/data-sources/osp_gateway_address_rule#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DataOciOspGatewayAddressRule 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/osp_gateway_address_rule oci_osp_gateway_address_rule} 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 DataOciOspGatewayAddressRuleConfig
    */
    constructor(scope: Construct, id: string, config: DataOciOspGatewayAddressRuleConfig);
    private _address;
    get address(): DataOciOspGatewayAddressRuleAddressList;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    private _contact;
    get contact(): DataOciOspGatewayAddressRuleContactList;
    private _countryCode?;
    get countryCode(): string;
    set countryCode(value: string);
    get countryCodeInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _ospHomeRegion?;
    get ospHomeRegion(): string;
    set ospHomeRegion(value: string);
    get ospHomeRegionInput(): string | undefined;
    private _tax;
    get tax(): DataOciOspGatewayAddressRuleTaxList;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
