import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface OspGatewaySubscriptionConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#compartment_id OspGatewaySubscription#compartment_id}
    */
    readonly compartmentId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#email OspGatewaySubscription#email}
    */
    readonly email: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#id OspGatewaySubscription#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/resources/osp_gateway_subscription#osp_home_region OspGatewaySubscription#osp_home_region}
    */
    readonly ospHomeRegion: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#subscription_id OspGatewaySubscription#subscription_id}
    */
    readonly subscriptionId: string;
    /**
    * subscription block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#subscription OspGatewaySubscription#subscription}
    */
    readonly subscription: OspGatewaySubscriptionSubscription;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#timeouts OspGatewaySubscription#timeouts}
    */
    readonly timeouts?: OspGatewaySubscriptionTimeouts;
}
export interface OspGatewaySubscriptionBillingAddress {
}
export declare function ospGatewaySubscriptionBillingAddressToTerraform(struct?: OspGatewaySubscriptionBillingAddress): any;
export declare function ospGatewaySubscriptionBillingAddressToHclTerraform(struct?: OspGatewaySubscriptionBillingAddress): any;
export declare class OspGatewaySubscriptionBillingAddressOutputReference 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(): OspGatewaySubscriptionBillingAddress | undefined;
    set internalValue(value: OspGatewaySubscriptionBillingAddress | undefined);
    get addressKey(): string;
    get city(): string;
    get companyName(): string;
    get contributorClass(): string;
    get country(): string;
    get county(): string;
    get departmentName(): string;
    get emailAddress(): string;
    get firstName(): string;
    get internalNumber(): string;
    get jobTitle(): string;
    get lastName(): string;
    get line1(): string;
    get line2(): string;
    get line3(): string;
    get line4(): string;
    get middleName(): string;
    get municipalInscription(): string;
    get phoneCountryCode(): string;
    get phoneNumber(): string;
    get postalCode(): string;
    get province(): string;
    get state(): string;
    get stateInscription(): string;
    get streetName(): string;
    get streetNumber(): string;
}
export declare class OspGatewaySubscriptionBillingAddressList 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): OspGatewaySubscriptionBillingAddressOutputReference;
}
export interface OspGatewaySubscriptionPaymentGatewayMerchantDefinedData {
}
export declare function ospGatewaySubscriptionPaymentGatewayMerchantDefinedDataToTerraform(struct?: OspGatewaySubscriptionPaymentGatewayMerchantDefinedData): any;
export declare function ospGatewaySubscriptionPaymentGatewayMerchantDefinedDataToHclTerraform(struct?: OspGatewaySubscriptionPaymentGatewayMerchantDefinedData): any;
export declare class OspGatewaySubscriptionPaymentGatewayMerchantDefinedDataOutputReference 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(): OspGatewaySubscriptionPaymentGatewayMerchantDefinedData | undefined;
    set internalValue(value: OspGatewaySubscriptionPaymentGatewayMerchantDefinedData | undefined);
    get cloudAccountName(): string;
    get promoType(): string;
}
export declare class OspGatewaySubscriptionPaymentGatewayMerchantDefinedDataList 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): OspGatewaySubscriptionPaymentGatewayMerchantDefinedDataOutputReference;
}
export interface OspGatewaySubscriptionPaymentGateway {
}
export declare function ospGatewaySubscriptionPaymentGatewayToTerraform(struct?: OspGatewaySubscriptionPaymentGateway): any;
export declare function ospGatewaySubscriptionPaymentGatewayToHclTerraform(struct?: OspGatewaySubscriptionPaymentGateway): any;
export declare class OspGatewaySubscriptionPaymentGatewayOutputReference 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(): OspGatewaySubscriptionPaymentGateway | undefined;
    set internalValue(value: OspGatewaySubscriptionPaymentGateway | undefined);
    private _merchantDefinedData;
    get merchantDefinedData(): OspGatewaySubscriptionPaymentGatewayMerchantDefinedDataList;
}
export declare class OspGatewaySubscriptionPaymentGatewayList 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): OspGatewaySubscriptionPaymentGatewayOutputReference;
}
export interface OspGatewaySubscriptionPaymentOptions {
}
export declare function ospGatewaySubscriptionPaymentOptionsToTerraform(struct?: OspGatewaySubscriptionPaymentOptions): any;
export declare function ospGatewaySubscriptionPaymentOptionsToHclTerraform(struct?: OspGatewaySubscriptionPaymentOptions): any;
export declare class OspGatewaySubscriptionPaymentOptionsOutputReference 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(): OspGatewaySubscriptionPaymentOptions | undefined;
    set internalValue(value: OspGatewaySubscriptionPaymentOptions | undefined);
    get creditCardType(): string;
    get emailAddress(): string;
    get extBillingAgreementId(): string;
    get firstName(): string;
    get lastDigits(): string;
    get lastName(): string;
    get nameOnCard(): string;
    get paymentMethod(): string;
    get timeExpiration(): string;
    get walletInstrumentId(): string;
    get walletTransactionId(): string;
}
export declare class OspGatewaySubscriptionPaymentOptionsList 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): OspGatewaySubscriptionPaymentOptionsOutputReference;
}
export interface OspGatewaySubscriptionTaxInfo {
}
export declare function ospGatewaySubscriptionTaxInfoToTerraform(struct?: OspGatewaySubscriptionTaxInfo): any;
export declare function ospGatewaySubscriptionTaxInfoToHclTerraform(struct?: OspGatewaySubscriptionTaxInfo): any;
export declare class OspGatewaySubscriptionTaxInfoOutputReference 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(): OspGatewaySubscriptionTaxInfo | undefined;
    set internalValue(value: OspGatewaySubscriptionTaxInfo | undefined);
    get giro(): string;
    get noTaxReasonCode(): string;
    get noTaxReasonCodeDetails(): string;
    get taxCnpj(): string;
    get taxPayerId(): string;
    get taxRegNumber(): string;
}
export declare class OspGatewaySubscriptionTaxInfoList 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): OspGatewaySubscriptionTaxInfoOutputReference;
}
export interface OspGatewaySubscriptionSubscriptionBillingAddress {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#address_key OspGatewaySubscription#address_key}
    */
    readonly addressKey?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#city OspGatewaySubscription#city}
    */
    readonly city?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#company_name OspGatewaySubscription#company_name}
    */
    readonly companyName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#contributor_class OspGatewaySubscription#contributor_class}
    */
    readonly contributorClass?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#country OspGatewaySubscription#country}
    */
    readonly country?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#county OspGatewaySubscription#county}
    */
    readonly county?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#department_name OspGatewaySubscription#department_name}
    */
    readonly departmentName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#email_address OspGatewaySubscription#email_address}
    */
    readonly emailAddress?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#first_name OspGatewaySubscription#first_name}
    */
    readonly firstName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#internal_number OspGatewaySubscription#internal_number}
    */
    readonly internalNumber?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#job_title OspGatewaySubscription#job_title}
    */
    readonly jobTitle?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#last_name OspGatewaySubscription#last_name}
    */
    readonly lastName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#line1 OspGatewaySubscription#line1}
    */
    readonly line1?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#line2 OspGatewaySubscription#line2}
    */
    readonly line2?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#line3 OspGatewaySubscription#line3}
    */
    readonly line3?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#line4 OspGatewaySubscription#line4}
    */
    readonly line4?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#middle_name OspGatewaySubscription#middle_name}
    */
    readonly middleName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#municipal_inscription OspGatewaySubscription#municipal_inscription}
    */
    readonly municipalInscription?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#phone_country_code OspGatewaySubscription#phone_country_code}
    */
    readonly phoneCountryCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#phone_number OspGatewaySubscription#phone_number}
    */
    readonly phoneNumber?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#postal_code OspGatewaySubscription#postal_code}
    */
    readonly postalCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#province OspGatewaySubscription#province}
    */
    readonly province?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#state OspGatewaySubscription#state}
    */
    readonly state?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#state_inscription OspGatewaySubscription#state_inscription}
    */
    readonly stateInscription?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#street_name OspGatewaySubscription#street_name}
    */
    readonly streetName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#street_number OspGatewaySubscription#street_number}
    */
    readonly streetNumber?: string;
}
export declare function ospGatewaySubscriptionSubscriptionBillingAddressToTerraform(struct?: OspGatewaySubscriptionSubscriptionBillingAddress | cdktf.IResolvable): any;
export declare function ospGatewaySubscriptionSubscriptionBillingAddressToHclTerraform(struct?: OspGatewaySubscriptionSubscriptionBillingAddress | cdktf.IResolvable): any;
export declare class OspGatewaySubscriptionSubscriptionBillingAddressOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @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(): OspGatewaySubscriptionSubscriptionBillingAddress | cdktf.IResolvable | undefined;
    set internalValue(value: OspGatewaySubscriptionSubscriptionBillingAddress | cdktf.IResolvable | undefined);
    private _addressKey?;
    get addressKey(): string;
    set addressKey(value: string);
    resetAddressKey(): void;
    get addressKeyInput(): string | undefined;
    private _city?;
    get city(): string;
    set city(value: string);
    resetCity(): void;
    get cityInput(): string | undefined;
    private _companyName?;
    get companyName(): string;
    set companyName(value: string);
    resetCompanyName(): void;
    get companyNameInput(): string | undefined;
    private _contributorClass?;
    get contributorClass(): string;
    set contributorClass(value: string);
    resetContributorClass(): void;
    get contributorClassInput(): string | undefined;
    private _country?;
    get country(): string;
    set country(value: string);
    resetCountry(): void;
    get countryInput(): string | undefined;
    private _county?;
    get county(): string;
    set county(value: string);
    resetCounty(): void;
    get countyInput(): string | undefined;
    private _departmentName?;
    get departmentName(): string;
    set departmentName(value: string);
    resetDepartmentName(): void;
    get departmentNameInput(): string | undefined;
    private _emailAddress?;
    get emailAddress(): string;
    set emailAddress(value: string);
    resetEmailAddress(): void;
    get emailAddressInput(): string | undefined;
    private _firstName?;
    get firstName(): string;
    set firstName(value: string);
    resetFirstName(): void;
    get firstNameInput(): string | undefined;
    private _internalNumber?;
    get internalNumber(): string;
    set internalNumber(value: string);
    resetInternalNumber(): void;
    get internalNumberInput(): string | undefined;
    private _jobTitle?;
    get jobTitle(): string;
    set jobTitle(value: string);
    resetJobTitle(): void;
    get jobTitleInput(): string | undefined;
    private _lastName?;
    get lastName(): string;
    set lastName(value: string);
    resetLastName(): void;
    get lastNameInput(): string | undefined;
    private _line1?;
    get line1(): string;
    set line1(value: string);
    resetLine1(): void;
    get line1Input(): string | undefined;
    private _line2?;
    get line2(): string;
    set line2(value: string);
    resetLine2(): void;
    get line2Input(): string | undefined;
    private _line3?;
    get line3(): string;
    set line3(value: string);
    resetLine3(): void;
    get line3Input(): string | undefined;
    private _line4?;
    get line4(): string;
    set line4(value: string);
    resetLine4(): void;
    get line4Input(): string | undefined;
    private _middleName?;
    get middleName(): string;
    set middleName(value: string);
    resetMiddleName(): void;
    get middleNameInput(): string | undefined;
    private _municipalInscription?;
    get municipalInscription(): string;
    set municipalInscription(value: string);
    resetMunicipalInscription(): void;
    get municipalInscriptionInput(): string | undefined;
    private _phoneCountryCode?;
    get phoneCountryCode(): string;
    set phoneCountryCode(value: string);
    resetPhoneCountryCode(): void;
    get phoneCountryCodeInput(): string | undefined;
    private _phoneNumber?;
    get phoneNumber(): string;
    set phoneNumber(value: string);
    resetPhoneNumber(): void;
    get phoneNumberInput(): string | undefined;
    private _postalCode?;
    get postalCode(): string;
    set postalCode(value: string);
    resetPostalCode(): void;
    get postalCodeInput(): string | undefined;
    private _province?;
    get province(): string;
    set province(value: string);
    resetProvince(): void;
    get provinceInput(): string | undefined;
    private _state?;
    get state(): string;
    set state(value: string);
    resetState(): void;
    get stateInput(): string | undefined;
    private _stateInscription?;
    get stateInscription(): string;
    set stateInscription(value: string);
    resetStateInscription(): void;
    get stateInscriptionInput(): string | undefined;
    private _streetName?;
    get streetName(): string;
    set streetName(value: string);
    resetStreetName(): void;
    get streetNameInput(): string | undefined;
    private _streetNumber?;
    get streetNumber(): string;
    set streetNumber(value: string);
    resetStreetNumber(): void;
    get streetNumberInput(): string | undefined;
}
export declare class OspGatewaySubscriptionSubscriptionBillingAddressList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: OspGatewaySubscriptionSubscriptionBillingAddress[] | cdktf.IResolvable;
    /**
    * @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): OspGatewaySubscriptionSubscriptionBillingAddressOutputReference;
}
export interface OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedData {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#cloud_account_name OspGatewaySubscription#cloud_account_name}
    */
    readonly cloudAccountName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#promo_type OspGatewaySubscription#promo_type}
    */
    readonly promoType?: string;
}
export declare function ospGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedDataToTerraform(struct?: OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedDataOutputReference | OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedData): any;
export declare function ospGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedDataToHclTerraform(struct?: OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedDataOutputReference | OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedData): any;
export declare class OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedDataOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedData | undefined;
    set internalValue(value: OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedData | undefined);
    private _cloudAccountName?;
    get cloudAccountName(): string;
    set cloudAccountName(value: string);
    resetCloudAccountName(): void;
    get cloudAccountNameInput(): string | undefined;
    private _promoType?;
    get promoType(): string;
    set promoType(value: string);
    resetPromoType(): void;
    get promoTypeInput(): string | undefined;
}
export interface OspGatewaySubscriptionSubscriptionPaymentGateway {
    /**
    * merchant_defined_data block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#merchant_defined_data OspGatewaySubscription#merchant_defined_data}
    */
    readonly merchantDefinedData?: OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedData;
}
export declare function ospGatewaySubscriptionSubscriptionPaymentGatewayToTerraform(struct?: OspGatewaySubscriptionSubscriptionPaymentGatewayOutputReference | OspGatewaySubscriptionSubscriptionPaymentGateway): any;
export declare function ospGatewaySubscriptionSubscriptionPaymentGatewayToHclTerraform(struct?: OspGatewaySubscriptionSubscriptionPaymentGatewayOutputReference | OspGatewaySubscriptionSubscriptionPaymentGateway): any;
export declare class OspGatewaySubscriptionSubscriptionPaymentGatewayOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): OspGatewaySubscriptionSubscriptionPaymentGateway | undefined;
    set internalValue(value: OspGatewaySubscriptionSubscriptionPaymentGateway | undefined);
    private _merchantDefinedData;
    get merchantDefinedData(): OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedDataOutputReference;
    putMerchantDefinedData(value: OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedData): void;
    resetMerchantDefinedData(): void;
    get merchantDefinedDataInput(): OspGatewaySubscriptionSubscriptionPaymentGatewayMerchantDefinedData | undefined;
}
export interface OspGatewaySubscriptionSubscriptionPaymentOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#credit_card_type OspGatewaySubscription#credit_card_type}
    */
    readonly creditCardType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#email_address OspGatewaySubscription#email_address}
    */
    readonly emailAddress?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#ext_billing_agreement_id OspGatewaySubscription#ext_billing_agreement_id}
    */
    readonly extBillingAgreementId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#first_name OspGatewaySubscription#first_name}
    */
    readonly firstName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#last_digits OspGatewaySubscription#last_digits}
    */
    readonly lastDigits?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#last_name OspGatewaySubscription#last_name}
    */
    readonly lastName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#name_on_card OspGatewaySubscription#name_on_card}
    */
    readonly nameOnCard?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#payment_method OspGatewaySubscription#payment_method}
    */
    readonly paymentMethod: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#time_expiration OspGatewaySubscription#time_expiration}
    */
    readonly timeExpiration?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#wallet_instrument_id OspGatewaySubscription#wallet_instrument_id}
    */
    readonly walletInstrumentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#wallet_transaction_id OspGatewaySubscription#wallet_transaction_id}
    */
    readonly walletTransactionId?: string;
}
export declare function ospGatewaySubscriptionSubscriptionPaymentOptionsToTerraform(struct?: OspGatewaySubscriptionSubscriptionPaymentOptions | cdktf.IResolvable): any;
export declare function ospGatewaySubscriptionSubscriptionPaymentOptionsToHclTerraform(struct?: OspGatewaySubscriptionSubscriptionPaymentOptions | cdktf.IResolvable): any;
export declare class OspGatewaySubscriptionSubscriptionPaymentOptionsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @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(): OspGatewaySubscriptionSubscriptionPaymentOptions | cdktf.IResolvable | undefined;
    set internalValue(value: OspGatewaySubscriptionSubscriptionPaymentOptions | cdktf.IResolvable | undefined);
    private _creditCardType?;
    get creditCardType(): string;
    set creditCardType(value: string);
    resetCreditCardType(): void;
    get creditCardTypeInput(): string | undefined;
    private _emailAddress?;
    get emailAddress(): string;
    set emailAddress(value: string);
    resetEmailAddress(): void;
    get emailAddressInput(): string | undefined;
    private _extBillingAgreementId?;
    get extBillingAgreementId(): string;
    set extBillingAgreementId(value: string);
    resetExtBillingAgreementId(): void;
    get extBillingAgreementIdInput(): string | undefined;
    private _firstName?;
    get firstName(): string;
    set firstName(value: string);
    resetFirstName(): void;
    get firstNameInput(): string | undefined;
    private _lastDigits?;
    get lastDigits(): string;
    set lastDigits(value: string);
    resetLastDigits(): void;
    get lastDigitsInput(): string | undefined;
    private _lastName?;
    get lastName(): string;
    set lastName(value: string);
    resetLastName(): void;
    get lastNameInput(): string | undefined;
    private _nameOnCard?;
    get nameOnCard(): string;
    set nameOnCard(value: string);
    resetNameOnCard(): void;
    get nameOnCardInput(): string | undefined;
    private _paymentMethod?;
    get paymentMethod(): string;
    set paymentMethod(value: string);
    get paymentMethodInput(): string | undefined;
    private _timeExpiration?;
    get timeExpiration(): string;
    set timeExpiration(value: string);
    resetTimeExpiration(): void;
    get timeExpirationInput(): string | undefined;
    private _walletInstrumentId?;
    get walletInstrumentId(): string;
    set walletInstrumentId(value: string);
    resetWalletInstrumentId(): void;
    get walletInstrumentIdInput(): string | undefined;
    private _walletTransactionId?;
    get walletTransactionId(): string;
    set walletTransactionId(value: string);
    resetWalletTransactionId(): void;
    get walletTransactionIdInput(): string | undefined;
}
export declare class OspGatewaySubscriptionSubscriptionPaymentOptionsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: OspGatewaySubscriptionSubscriptionPaymentOptions[] | cdktf.IResolvable;
    /**
    * @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): OspGatewaySubscriptionSubscriptionPaymentOptionsOutputReference;
}
export interface OspGatewaySubscriptionSubscriptionTaxInfo {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#no_tax_reason_code OspGatewaySubscription#no_tax_reason_code}
    */
    readonly noTaxReasonCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#no_tax_reason_code_details OspGatewaySubscription#no_tax_reason_code_details}
    */
    readonly noTaxReasonCodeDetails?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#tax_cnpj OspGatewaySubscription#tax_cnpj}
    */
    readonly taxCnpj?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#tax_payer_id OspGatewaySubscription#tax_payer_id}
    */
    readonly taxPayerId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#tax_reg_number OspGatewaySubscription#tax_reg_number}
    */
    readonly taxRegNumber?: string;
}
export declare function ospGatewaySubscriptionSubscriptionTaxInfoToTerraform(struct?: OspGatewaySubscriptionSubscriptionTaxInfoOutputReference | OspGatewaySubscriptionSubscriptionTaxInfo): any;
export declare function ospGatewaySubscriptionSubscriptionTaxInfoToHclTerraform(struct?: OspGatewaySubscriptionSubscriptionTaxInfoOutputReference | OspGatewaySubscriptionSubscriptionTaxInfo): any;
export declare class OspGatewaySubscriptionSubscriptionTaxInfoOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): OspGatewaySubscriptionSubscriptionTaxInfo | undefined;
    set internalValue(value: OspGatewaySubscriptionSubscriptionTaxInfo | undefined);
    private _noTaxReasonCode?;
    get noTaxReasonCode(): string;
    set noTaxReasonCode(value: string);
    resetNoTaxReasonCode(): void;
    get noTaxReasonCodeInput(): string | undefined;
    private _noTaxReasonCodeDetails?;
    get noTaxReasonCodeDetails(): string;
    set noTaxReasonCodeDetails(value: string);
    resetNoTaxReasonCodeDetails(): void;
    get noTaxReasonCodeDetailsInput(): string | undefined;
    private _taxCnpj?;
    get taxCnpj(): string;
    set taxCnpj(value: string);
    resetTaxCnpj(): void;
    get taxCnpjInput(): string | undefined;
    private _taxPayerId?;
    get taxPayerId(): string;
    set taxPayerId(value: string);
    resetTaxPayerId(): void;
    get taxPayerIdInput(): string | undefined;
    private _taxRegNumber?;
    get taxRegNumber(): string;
    set taxRegNumber(value: string);
    resetTaxRegNumber(): void;
    get taxRegNumberInput(): string | undefined;
}
export interface OspGatewaySubscriptionSubscription {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#account_type OspGatewaySubscription#account_type}
    */
    readonly accountType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#bill_to_cust_account_id OspGatewaySubscription#bill_to_cust_account_id}
    */
    readonly billToCustAccountId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#currency_code OspGatewaySubscription#currency_code}
    */
    readonly currencyCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#gsi_org_code OspGatewaySubscription#gsi_org_code}
    */
    readonly gsiOrgCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#id OspGatewaySubscription#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/resources/osp_gateway_subscription#is_intent_to_pay OspGatewaySubscription#is_intent_to_pay}
    */
    readonly isIntentToPay?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#language_code OspGatewaySubscription#language_code}
    */
    readonly languageCode?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#organization_id OspGatewaySubscription#organization_id}
    */
    readonly organizationId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#plan_type OspGatewaySubscription#plan_type}
    */
    readonly planType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#ship_to_cust_acct_role_id OspGatewaySubscription#ship_to_cust_acct_role_id}
    */
    readonly shipToCustAcctRoleId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#ship_to_cust_acct_site_id OspGatewaySubscription#ship_to_cust_acct_site_id}
    */
    readonly shipToCustAcctSiteId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#subscription_plan_number OspGatewaySubscription#subscription_plan_number}
    */
    readonly subscriptionPlanNumber: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#time_personal_to_corporate_conv OspGatewaySubscription#time_personal_to_corporate_conv}
    */
    readonly timePersonalToCorporateConv?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#time_plan_upgrade OspGatewaySubscription#time_plan_upgrade}
    */
    readonly timePlanUpgrade?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#time_start OspGatewaySubscription#time_start}
    */
    readonly timeStart?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#upgrade_state OspGatewaySubscription#upgrade_state}
    */
    readonly upgradeState?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#upgrade_state_details OspGatewaySubscription#upgrade_state_details}
    */
    readonly upgradeStateDetails?: string;
    /**
    * billing_address block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#billing_address OspGatewaySubscription#billing_address}
    */
    readonly billingAddress?: OspGatewaySubscriptionSubscriptionBillingAddress[] | cdktf.IResolvable;
    /**
    * payment_gateway block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#payment_gateway OspGatewaySubscription#payment_gateway}
    */
    readonly paymentGateway?: OspGatewaySubscriptionSubscriptionPaymentGateway;
    /**
    * payment_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#payment_options OspGatewaySubscription#payment_options}
    */
    readonly paymentOptions?: OspGatewaySubscriptionSubscriptionPaymentOptions[] | cdktf.IResolvable;
    /**
    * tax_info block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#tax_info OspGatewaySubscription#tax_info}
    */
    readonly taxInfo?: OspGatewaySubscriptionSubscriptionTaxInfo;
}
export declare function ospGatewaySubscriptionSubscriptionToTerraform(struct?: OspGatewaySubscriptionSubscriptionOutputReference | OspGatewaySubscriptionSubscription): any;
export declare function ospGatewaySubscriptionSubscriptionToHclTerraform(struct?: OspGatewaySubscriptionSubscriptionOutputReference | OspGatewaySubscriptionSubscription): any;
export declare class OspGatewaySubscriptionSubscriptionOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): OspGatewaySubscriptionSubscription | undefined;
    set internalValue(value: OspGatewaySubscriptionSubscription | undefined);
    private _accountType?;
    get accountType(): string;
    set accountType(value: string);
    resetAccountType(): void;
    get accountTypeInput(): string | undefined;
    private _billToCustAccountId?;
    get billToCustAccountId(): string;
    set billToCustAccountId(value: string);
    resetBillToCustAccountId(): void;
    get billToCustAccountIdInput(): string | undefined;
    private _currencyCode?;
    get currencyCode(): string;
    set currencyCode(value: string);
    resetCurrencyCode(): void;
    get currencyCodeInput(): string | undefined;
    private _gsiOrgCode?;
    get gsiOrgCode(): string;
    set gsiOrgCode(value: string);
    resetGsiOrgCode(): void;
    get gsiOrgCodeInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _isIntentToPay?;
    get isIntentToPay(): boolean | cdktf.IResolvable;
    set isIntentToPay(value: boolean | cdktf.IResolvable);
    resetIsIntentToPay(): void;
    get isIntentToPayInput(): boolean | cdktf.IResolvable | undefined;
    private _languageCode?;
    get languageCode(): string;
    set languageCode(value: string);
    resetLanguageCode(): void;
    get languageCodeInput(): string | undefined;
    private _organizationId?;
    get organizationId(): string;
    set organizationId(value: string);
    resetOrganizationId(): void;
    get organizationIdInput(): string | undefined;
    private _planType?;
    get planType(): string;
    set planType(value: string);
    resetPlanType(): void;
    get planTypeInput(): string | undefined;
    private _shipToCustAcctRoleId?;
    get shipToCustAcctRoleId(): string;
    set shipToCustAcctRoleId(value: string);
    resetShipToCustAcctRoleId(): void;
    get shipToCustAcctRoleIdInput(): string | undefined;
    private _shipToCustAcctSiteId?;
    get shipToCustAcctSiteId(): string;
    set shipToCustAcctSiteId(value: string);
    resetShipToCustAcctSiteId(): void;
    get shipToCustAcctSiteIdInput(): string | undefined;
    private _subscriptionPlanNumber?;
    get subscriptionPlanNumber(): string;
    set subscriptionPlanNumber(value: string);
    get subscriptionPlanNumberInput(): string | undefined;
    private _timePersonalToCorporateConv?;
    get timePersonalToCorporateConv(): string;
    set timePersonalToCorporateConv(value: string);
    resetTimePersonalToCorporateConv(): void;
    get timePersonalToCorporateConvInput(): string | undefined;
    private _timePlanUpgrade?;
    get timePlanUpgrade(): string;
    set timePlanUpgrade(value: string);
    resetTimePlanUpgrade(): void;
    get timePlanUpgradeInput(): string | undefined;
    private _timeStart?;
    get timeStart(): string;
    set timeStart(value: string);
    resetTimeStart(): void;
    get timeStartInput(): string | undefined;
    private _upgradeState?;
    get upgradeState(): string;
    set upgradeState(value: string);
    resetUpgradeState(): void;
    get upgradeStateInput(): string | undefined;
    private _upgradeStateDetails?;
    get upgradeStateDetails(): string;
    set upgradeStateDetails(value: string);
    resetUpgradeStateDetails(): void;
    get upgradeStateDetailsInput(): string | undefined;
    private _billingAddress;
    get billingAddress(): OspGatewaySubscriptionSubscriptionBillingAddressList;
    putBillingAddress(value: OspGatewaySubscriptionSubscriptionBillingAddress[] | cdktf.IResolvable): void;
    resetBillingAddress(): void;
    get billingAddressInput(): cdktf.IResolvable | OspGatewaySubscriptionSubscriptionBillingAddress[] | undefined;
    private _paymentGateway;
    get paymentGateway(): OspGatewaySubscriptionSubscriptionPaymentGatewayOutputReference;
    putPaymentGateway(value: OspGatewaySubscriptionSubscriptionPaymentGateway): void;
    resetPaymentGateway(): void;
    get paymentGatewayInput(): OspGatewaySubscriptionSubscriptionPaymentGateway | undefined;
    private _paymentOptions;
    get paymentOptions(): OspGatewaySubscriptionSubscriptionPaymentOptionsList;
    putPaymentOptions(value: OspGatewaySubscriptionSubscriptionPaymentOptions[] | cdktf.IResolvable): void;
    resetPaymentOptions(): void;
    get paymentOptionsInput(): cdktf.IResolvable | OspGatewaySubscriptionSubscriptionPaymentOptions[] | undefined;
    private _taxInfo;
    get taxInfo(): OspGatewaySubscriptionSubscriptionTaxInfoOutputReference;
    putTaxInfo(value: OspGatewaySubscriptionSubscriptionTaxInfo): void;
    resetTaxInfo(): void;
    get taxInfoInput(): OspGatewaySubscriptionSubscriptionTaxInfo | undefined;
}
export interface OspGatewaySubscriptionTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#create OspGatewaySubscription#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#delete OspGatewaySubscription#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#update OspGatewaySubscription#update}
    */
    readonly update?: string;
}
export declare function ospGatewaySubscriptionTimeoutsToTerraform(struct?: OspGatewaySubscriptionTimeouts | cdktf.IResolvable): any;
export declare function ospGatewaySubscriptionTimeoutsToHclTerraform(struct?: OspGatewaySubscriptionTimeouts | cdktf.IResolvable): any;
export declare class OspGatewaySubscriptionTimeoutsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    private resolvableValue?;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string);
    get internalValue(): OspGatewaySubscriptionTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: OspGatewaySubscriptionTimeouts | cdktf.IResolvable | undefined);
    private _create?;
    get create(): string;
    set create(value: string);
    resetCreate(): void;
    get createInput(): string | undefined;
    private _delete?;
    get delete(): string;
    set delete(value: string);
    resetDelete(): void;
    get deleteInput(): string | undefined;
    private _update?;
    get update(): string;
    set update(value: string);
    resetUpdate(): void;
    get updateInput(): string | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription oci_osp_gateway_subscription}
*/
export declare class OspGatewaySubscription extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_osp_gateway_subscription";
    /**
    * Generates CDKTF code for importing a OspGatewaySubscription 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 OspGatewaySubscription to import
    * @param importFromId The id of the existing OspGatewaySubscription that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/osp_gateway_subscription#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the OspGatewaySubscription 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/resources/osp_gateway_subscription oci_osp_gateway_subscription} 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 OspGatewaySubscriptionConfig
    */
    constructor(scope: Construct, id: string, config: OspGatewaySubscriptionConfig);
    get accountType(): string;
    get billToCustAccountId(): string;
    private _billingAddress;
    get billingAddress(): OspGatewaySubscriptionBillingAddressList;
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    get compartmentIdInput(): string | undefined;
    get currencyCode(): string;
    private _email?;
    get email(): string;
    set email(value: string);
    get emailInput(): string | undefined;
    get gsiOrgCode(): string;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    get isIntentToPay(): cdktf.IResolvable;
    get languageCode(): string;
    get organizationId(): string;
    private _ospHomeRegion?;
    get ospHomeRegion(): string;
    set ospHomeRegion(value: string);
    get ospHomeRegionInput(): string | undefined;
    private _paymentGateway;
    get paymentGateway(): OspGatewaySubscriptionPaymentGatewayList;
    private _paymentOptions;
    get paymentOptions(): OspGatewaySubscriptionPaymentOptionsList;
    get planType(): string;
    get shipToCustAcctRoleId(): string;
    get shipToCustAcctSiteId(): string;
    private _subscriptionId?;
    get subscriptionId(): string;
    set subscriptionId(value: string);
    get subscriptionIdInput(): string | undefined;
    get subscriptionPlanNumber(): string;
    private _taxInfo;
    get taxInfo(): OspGatewaySubscriptionTaxInfoList;
    get timePersonalToCorporateConv(): string;
    get timePlanUpgrade(): string;
    get timeStart(): string;
    get upgradeState(): string;
    get upgradeStateDetails(): string;
    private _subscription;
    get subscription(): OspGatewaySubscriptionSubscriptionOutputReference;
    putSubscription(value: OspGatewaySubscriptionSubscription): void;
    get subscriptionInput(): OspGatewaySubscriptionSubscription | undefined;
    private _timeouts;
    get timeouts(): OspGatewaySubscriptionTimeoutsOutputReference;
    putTimeouts(value: OspGatewaySubscriptionTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | OspGatewaySubscriptionTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
