import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface CoreDefaultSecurityListConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#compartment_id CoreDefaultSecurityList#compartment_id}
    */
    readonly compartmentId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#defined_tags CoreDefaultSecurityList#defined_tags}
    */
    readonly definedTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#display_name CoreDefaultSecurityList#display_name}
    */
    readonly displayName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#freeform_tags CoreDefaultSecurityList#freeform_tags}
    */
    readonly freeformTags?: {
        [key: string]: string;
    };
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#id CoreDefaultSecurityList#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/core_default_security_list#manage_default_resource_id CoreDefaultSecurityList#manage_default_resource_id}
    */
    readonly manageDefaultResourceId: string;
    /**
    * egress_security_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#egress_security_rules CoreDefaultSecurityList#egress_security_rules}
    */
    readonly egressSecurityRules?: CoreDefaultSecurityListEgressSecurityRules[] | cdktf.IResolvable;
    /**
    * ingress_security_rules block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#ingress_security_rules CoreDefaultSecurityList#ingress_security_rules}
    */
    readonly ingressSecurityRules?: CoreDefaultSecurityListIngressSecurityRules[] | cdktf.IResolvable;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#timeouts CoreDefaultSecurityList#timeouts}
    */
    readonly timeouts?: CoreDefaultSecurityListTimeouts;
}
export interface CoreDefaultSecurityListEgressSecurityRulesIcmpOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#code CoreDefaultSecurityList#code}
    */
    readonly code?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#type CoreDefaultSecurityList#type}
    */
    readonly type: number;
}
export declare function coreDefaultSecurityListEgressSecurityRulesIcmpOptionsToTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesIcmpOptionsOutputReference | CoreDefaultSecurityListEgressSecurityRulesIcmpOptions): any;
export declare function coreDefaultSecurityListEgressSecurityRulesIcmpOptionsToHclTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesIcmpOptionsOutputReference | CoreDefaultSecurityListEgressSecurityRulesIcmpOptions): any;
export declare class CoreDefaultSecurityListEgressSecurityRulesIcmpOptionsOutputReference 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(): CoreDefaultSecurityListEgressSecurityRulesIcmpOptions | undefined;
    set internalValue(value: CoreDefaultSecurityListEgressSecurityRulesIcmpOptions | undefined);
    private _code?;
    get code(): number;
    set code(value: number);
    resetCode(): void;
    get codeInput(): number | undefined;
    private _type?;
    get type(): number;
    set type(value: number);
    get typeInput(): number | undefined;
}
export interface CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRange {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#max CoreDefaultSecurityList#max}
    */
    readonly max: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#min CoreDefaultSecurityList#min}
    */
    readonly min: number;
}
export declare function coreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRangeToTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRangeOutputReference | CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRange): any;
export declare function coreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRangeToHclTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRangeOutputReference | CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRange): any;
export declare class CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRangeOutputReference 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(): CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRange | undefined;
    set internalValue(value: CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRange | undefined);
    private _max?;
    get max(): number;
    set max(value: number);
    get maxInput(): number | undefined;
    private _min?;
    get min(): number;
    set min(value: number);
    get minInput(): number | undefined;
}
export interface CoreDefaultSecurityListEgressSecurityRulesTcpOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#max CoreDefaultSecurityList#max}
    */
    readonly max?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#min CoreDefaultSecurityList#min}
    */
    readonly min?: number;
    /**
    * source_port_range block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#source_port_range CoreDefaultSecurityList#source_port_range}
    */
    readonly sourcePortRange?: CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRange;
}
export declare function coreDefaultSecurityListEgressSecurityRulesTcpOptionsToTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesTcpOptionsOutputReference | CoreDefaultSecurityListEgressSecurityRulesTcpOptions): any;
export declare function coreDefaultSecurityListEgressSecurityRulesTcpOptionsToHclTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesTcpOptionsOutputReference | CoreDefaultSecurityListEgressSecurityRulesTcpOptions): any;
export declare class CoreDefaultSecurityListEgressSecurityRulesTcpOptionsOutputReference 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(): CoreDefaultSecurityListEgressSecurityRulesTcpOptions | undefined;
    set internalValue(value: CoreDefaultSecurityListEgressSecurityRulesTcpOptions | undefined);
    private _max?;
    get max(): number;
    set max(value: number);
    resetMax(): void;
    get maxInput(): number | undefined;
    private _min?;
    get min(): number;
    set min(value: number);
    resetMin(): void;
    get minInput(): number | undefined;
    private _sourcePortRange;
    get sourcePortRange(): CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRangeOutputReference;
    putSourcePortRange(value: CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRange): void;
    resetSourcePortRange(): void;
    get sourcePortRangeInput(): CoreDefaultSecurityListEgressSecurityRulesTcpOptionsSourcePortRange | undefined;
}
export interface CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRange {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#max CoreDefaultSecurityList#max}
    */
    readonly max: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#min CoreDefaultSecurityList#min}
    */
    readonly min: number;
}
export declare function coreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRangeToTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRangeOutputReference | CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRange): any;
export declare function coreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRangeToHclTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRangeOutputReference | CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRange): any;
export declare class CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRangeOutputReference 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(): CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRange | undefined;
    set internalValue(value: CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRange | undefined);
    private _max?;
    get max(): number;
    set max(value: number);
    get maxInput(): number | undefined;
    private _min?;
    get min(): number;
    set min(value: number);
    get minInput(): number | undefined;
}
export interface CoreDefaultSecurityListEgressSecurityRulesUdpOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#max CoreDefaultSecurityList#max}
    */
    readonly max?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#min CoreDefaultSecurityList#min}
    */
    readonly min?: number;
    /**
    * source_port_range block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#source_port_range CoreDefaultSecurityList#source_port_range}
    */
    readonly sourcePortRange?: CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRange;
}
export declare function coreDefaultSecurityListEgressSecurityRulesUdpOptionsToTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesUdpOptionsOutputReference | CoreDefaultSecurityListEgressSecurityRulesUdpOptions): any;
export declare function coreDefaultSecurityListEgressSecurityRulesUdpOptionsToHclTerraform(struct?: CoreDefaultSecurityListEgressSecurityRulesUdpOptionsOutputReference | CoreDefaultSecurityListEgressSecurityRulesUdpOptions): any;
export declare class CoreDefaultSecurityListEgressSecurityRulesUdpOptionsOutputReference 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(): CoreDefaultSecurityListEgressSecurityRulesUdpOptions | undefined;
    set internalValue(value: CoreDefaultSecurityListEgressSecurityRulesUdpOptions | undefined);
    private _max?;
    get max(): number;
    set max(value: number);
    resetMax(): void;
    get maxInput(): number | undefined;
    private _min?;
    get min(): number;
    set min(value: number);
    resetMin(): void;
    get minInput(): number | undefined;
    private _sourcePortRange;
    get sourcePortRange(): CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRangeOutputReference;
    putSourcePortRange(value: CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRange): void;
    resetSourcePortRange(): void;
    get sourcePortRangeInput(): CoreDefaultSecurityListEgressSecurityRulesUdpOptionsSourcePortRange | undefined;
}
export interface CoreDefaultSecurityListEgressSecurityRules {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#description CoreDefaultSecurityList#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#destination CoreDefaultSecurityList#destination}
    */
    readonly destination: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#destination_type CoreDefaultSecurityList#destination_type}
    */
    readonly destinationType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#protocol CoreDefaultSecurityList#protocol}
    */
    readonly protocol: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#stateless CoreDefaultSecurityList#stateless}
    */
    readonly stateless?: boolean | cdktf.IResolvable;
    /**
    * icmp_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#icmp_options CoreDefaultSecurityList#icmp_options}
    */
    readonly icmpOptions?: CoreDefaultSecurityListEgressSecurityRulesIcmpOptions;
    /**
    * tcp_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#tcp_options CoreDefaultSecurityList#tcp_options}
    */
    readonly tcpOptions?: CoreDefaultSecurityListEgressSecurityRulesTcpOptions;
    /**
    * udp_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#udp_options CoreDefaultSecurityList#udp_options}
    */
    readonly udpOptions?: CoreDefaultSecurityListEgressSecurityRulesUdpOptions;
}
export declare function coreDefaultSecurityListEgressSecurityRulesToTerraform(struct?: CoreDefaultSecurityListEgressSecurityRules | cdktf.IResolvable): any;
export declare function coreDefaultSecurityListEgressSecurityRulesToHclTerraform(struct?: CoreDefaultSecurityListEgressSecurityRules | cdktf.IResolvable): any;
export declare class CoreDefaultSecurityListEgressSecurityRulesOutputReference 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(): CoreDefaultSecurityListEgressSecurityRules | cdktf.IResolvable | undefined;
    set internalValue(value: CoreDefaultSecurityListEgressSecurityRules | cdktf.IResolvable | undefined);
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _destination?;
    get destination(): string;
    set destination(value: string);
    get destinationInput(): string | undefined;
    private _destinationType?;
    get destinationType(): string;
    set destinationType(value: string);
    resetDestinationType(): void;
    get destinationTypeInput(): string | undefined;
    private _protocol?;
    get protocol(): string;
    set protocol(value: string);
    get protocolInput(): string | undefined;
    private _stateless?;
    get stateless(): boolean | cdktf.IResolvable;
    set stateless(value: boolean | cdktf.IResolvable);
    resetStateless(): void;
    get statelessInput(): boolean | cdktf.IResolvable | undefined;
    private _icmpOptions;
    get icmpOptions(): CoreDefaultSecurityListEgressSecurityRulesIcmpOptionsOutputReference;
    putIcmpOptions(value: CoreDefaultSecurityListEgressSecurityRulesIcmpOptions): void;
    resetIcmpOptions(): void;
    get icmpOptionsInput(): CoreDefaultSecurityListEgressSecurityRulesIcmpOptions | undefined;
    private _tcpOptions;
    get tcpOptions(): CoreDefaultSecurityListEgressSecurityRulesTcpOptionsOutputReference;
    putTcpOptions(value: CoreDefaultSecurityListEgressSecurityRulesTcpOptions): void;
    resetTcpOptions(): void;
    get tcpOptionsInput(): CoreDefaultSecurityListEgressSecurityRulesTcpOptions | undefined;
    private _udpOptions;
    get udpOptions(): CoreDefaultSecurityListEgressSecurityRulesUdpOptionsOutputReference;
    putUdpOptions(value: CoreDefaultSecurityListEgressSecurityRulesUdpOptions): void;
    resetUdpOptions(): void;
    get udpOptionsInput(): CoreDefaultSecurityListEgressSecurityRulesUdpOptions | undefined;
}
export declare class CoreDefaultSecurityListEgressSecurityRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreDefaultSecurityListEgressSecurityRules[] | 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): CoreDefaultSecurityListEgressSecurityRulesOutputReference;
}
export interface CoreDefaultSecurityListIngressSecurityRulesIcmpOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#code CoreDefaultSecurityList#code}
    */
    readonly code?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#type CoreDefaultSecurityList#type}
    */
    readonly type: number;
}
export declare function coreDefaultSecurityListIngressSecurityRulesIcmpOptionsToTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesIcmpOptionsOutputReference | CoreDefaultSecurityListIngressSecurityRulesIcmpOptions): any;
export declare function coreDefaultSecurityListIngressSecurityRulesIcmpOptionsToHclTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesIcmpOptionsOutputReference | CoreDefaultSecurityListIngressSecurityRulesIcmpOptions): any;
export declare class CoreDefaultSecurityListIngressSecurityRulesIcmpOptionsOutputReference 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(): CoreDefaultSecurityListIngressSecurityRulesIcmpOptions | undefined;
    set internalValue(value: CoreDefaultSecurityListIngressSecurityRulesIcmpOptions | undefined);
    private _code?;
    get code(): number;
    set code(value: number);
    resetCode(): void;
    get codeInput(): number | undefined;
    private _type?;
    get type(): number;
    set type(value: number);
    get typeInput(): number | undefined;
}
export interface CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRange {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#max CoreDefaultSecurityList#max}
    */
    readonly max: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#min CoreDefaultSecurityList#min}
    */
    readonly min: number;
}
export declare function coreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRangeToTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRangeOutputReference | CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRange): any;
export declare function coreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRangeToHclTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRangeOutputReference | CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRange): any;
export declare class CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRangeOutputReference 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(): CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRange | undefined;
    set internalValue(value: CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRange | undefined);
    private _max?;
    get max(): number;
    set max(value: number);
    get maxInput(): number | undefined;
    private _min?;
    get min(): number;
    set min(value: number);
    get minInput(): number | undefined;
}
export interface CoreDefaultSecurityListIngressSecurityRulesTcpOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#max CoreDefaultSecurityList#max}
    */
    readonly max?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#min CoreDefaultSecurityList#min}
    */
    readonly min?: number;
    /**
    * source_port_range block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#source_port_range CoreDefaultSecurityList#source_port_range}
    */
    readonly sourcePortRange?: CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRange;
}
export declare function coreDefaultSecurityListIngressSecurityRulesTcpOptionsToTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesTcpOptionsOutputReference | CoreDefaultSecurityListIngressSecurityRulesTcpOptions): any;
export declare function coreDefaultSecurityListIngressSecurityRulesTcpOptionsToHclTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesTcpOptionsOutputReference | CoreDefaultSecurityListIngressSecurityRulesTcpOptions): any;
export declare class CoreDefaultSecurityListIngressSecurityRulesTcpOptionsOutputReference 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(): CoreDefaultSecurityListIngressSecurityRulesTcpOptions | undefined;
    set internalValue(value: CoreDefaultSecurityListIngressSecurityRulesTcpOptions | undefined);
    private _max?;
    get max(): number;
    set max(value: number);
    resetMax(): void;
    get maxInput(): number | undefined;
    private _min?;
    get min(): number;
    set min(value: number);
    resetMin(): void;
    get minInput(): number | undefined;
    private _sourcePortRange;
    get sourcePortRange(): CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRangeOutputReference;
    putSourcePortRange(value: CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRange): void;
    resetSourcePortRange(): void;
    get sourcePortRangeInput(): CoreDefaultSecurityListIngressSecurityRulesTcpOptionsSourcePortRange | undefined;
}
export interface CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRange {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#max CoreDefaultSecurityList#max}
    */
    readonly max: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#min CoreDefaultSecurityList#min}
    */
    readonly min: number;
}
export declare function coreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRangeToTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRangeOutputReference | CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRange): any;
export declare function coreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRangeToHclTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRangeOutputReference | CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRange): any;
export declare class CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRangeOutputReference 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(): CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRange | undefined;
    set internalValue(value: CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRange | undefined);
    private _max?;
    get max(): number;
    set max(value: number);
    get maxInput(): number | undefined;
    private _min?;
    get min(): number;
    set min(value: number);
    get minInput(): number | undefined;
}
export interface CoreDefaultSecurityListIngressSecurityRulesUdpOptions {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#max CoreDefaultSecurityList#max}
    */
    readonly max?: number;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#min CoreDefaultSecurityList#min}
    */
    readonly min?: number;
    /**
    * source_port_range block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#source_port_range CoreDefaultSecurityList#source_port_range}
    */
    readonly sourcePortRange?: CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRange;
}
export declare function coreDefaultSecurityListIngressSecurityRulesUdpOptionsToTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesUdpOptionsOutputReference | CoreDefaultSecurityListIngressSecurityRulesUdpOptions): any;
export declare function coreDefaultSecurityListIngressSecurityRulesUdpOptionsToHclTerraform(struct?: CoreDefaultSecurityListIngressSecurityRulesUdpOptionsOutputReference | CoreDefaultSecurityListIngressSecurityRulesUdpOptions): any;
export declare class CoreDefaultSecurityListIngressSecurityRulesUdpOptionsOutputReference 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(): CoreDefaultSecurityListIngressSecurityRulesUdpOptions | undefined;
    set internalValue(value: CoreDefaultSecurityListIngressSecurityRulesUdpOptions | undefined);
    private _max?;
    get max(): number;
    set max(value: number);
    resetMax(): void;
    get maxInput(): number | undefined;
    private _min?;
    get min(): number;
    set min(value: number);
    resetMin(): void;
    get minInput(): number | undefined;
    private _sourcePortRange;
    get sourcePortRange(): CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRangeOutputReference;
    putSourcePortRange(value: CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRange): void;
    resetSourcePortRange(): void;
    get sourcePortRangeInput(): CoreDefaultSecurityListIngressSecurityRulesUdpOptionsSourcePortRange | undefined;
}
export interface CoreDefaultSecurityListIngressSecurityRules {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#description CoreDefaultSecurityList#description}
    */
    readonly description?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#protocol CoreDefaultSecurityList#protocol}
    */
    readonly protocol: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#source CoreDefaultSecurityList#source}
    */
    readonly source: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#source_type CoreDefaultSecurityList#source_type}
    */
    readonly sourceType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#stateless CoreDefaultSecurityList#stateless}
    */
    readonly stateless?: boolean | cdktf.IResolvable;
    /**
    * icmp_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#icmp_options CoreDefaultSecurityList#icmp_options}
    */
    readonly icmpOptions?: CoreDefaultSecurityListIngressSecurityRulesIcmpOptions;
    /**
    * tcp_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#tcp_options CoreDefaultSecurityList#tcp_options}
    */
    readonly tcpOptions?: CoreDefaultSecurityListIngressSecurityRulesTcpOptions;
    /**
    * udp_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#udp_options CoreDefaultSecurityList#udp_options}
    */
    readonly udpOptions?: CoreDefaultSecurityListIngressSecurityRulesUdpOptions;
}
export declare function coreDefaultSecurityListIngressSecurityRulesToTerraform(struct?: CoreDefaultSecurityListIngressSecurityRules | cdktf.IResolvable): any;
export declare function coreDefaultSecurityListIngressSecurityRulesToHclTerraform(struct?: CoreDefaultSecurityListIngressSecurityRules | cdktf.IResolvable): any;
export declare class CoreDefaultSecurityListIngressSecurityRulesOutputReference 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(): CoreDefaultSecurityListIngressSecurityRules | cdktf.IResolvable | undefined;
    set internalValue(value: CoreDefaultSecurityListIngressSecurityRules | cdktf.IResolvable | undefined);
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _protocol?;
    get protocol(): string;
    set protocol(value: string);
    get protocolInput(): string | undefined;
    private _source?;
    get source(): string;
    set source(value: string);
    get sourceInput(): string | undefined;
    private _sourceType?;
    get sourceType(): string;
    set sourceType(value: string);
    resetSourceType(): void;
    get sourceTypeInput(): string | undefined;
    private _stateless?;
    get stateless(): boolean | cdktf.IResolvable;
    set stateless(value: boolean | cdktf.IResolvable);
    resetStateless(): void;
    get statelessInput(): boolean | cdktf.IResolvable | undefined;
    private _icmpOptions;
    get icmpOptions(): CoreDefaultSecurityListIngressSecurityRulesIcmpOptionsOutputReference;
    putIcmpOptions(value: CoreDefaultSecurityListIngressSecurityRulesIcmpOptions): void;
    resetIcmpOptions(): void;
    get icmpOptionsInput(): CoreDefaultSecurityListIngressSecurityRulesIcmpOptions | undefined;
    private _tcpOptions;
    get tcpOptions(): CoreDefaultSecurityListIngressSecurityRulesTcpOptionsOutputReference;
    putTcpOptions(value: CoreDefaultSecurityListIngressSecurityRulesTcpOptions): void;
    resetTcpOptions(): void;
    get tcpOptionsInput(): CoreDefaultSecurityListIngressSecurityRulesTcpOptions | undefined;
    private _udpOptions;
    get udpOptions(): CoreDefaultSecurityListIngressSecurityRulesUdpOptionsOutputReference;
    putUdpOptions(value: CoreDefaultSecurityListIngressSecurityRulesUdpOptions): void;
    resetUdpOptions(): void;
    get udpOptionsInput(): CoreDefaultSecurityListIngressSecurityRulesUdpOptions | undefined;
}
export declare class CoreDefaultSecurityListIngressSecurityRulesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: CoreDefaultSecurityListIngressSecurityRules[] | 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): CoreDefaultSecurityListIngressSecurityRulesOutputReference;
}
export interface CoreDefaultSecurityListTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#create CoreDefaultSecurityList#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#delete CoreDefaultSecurityList#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#update CoreDefaultSecurityList#update}
    */
    readonly update?: string;
}
export declare function coreDefaultSecurityListTimeoutsToTerraform(struct?: CoreDefaultSecurityListTimeouts | cdktf.IResolvable): any;
export declare function coreDefaultSecurityListTimeoutsToHclTerraform(struct?: CoreDefaultSecurityListTimeouts | cdktf.IResolvable): any;
export declare class CoreDefaultSecurityListTimeoutsOutputReference 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(): CoreDefaultSecurityListTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: CoreDefaultSecurityListTimeouts | 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/core_default_security_list oci_core_default_security_list}
*/
export declare class CoreDefaultSecurityList extends cdktf.TerraformResource {
    static readonly tfResourceType = "oci_core_default_security_list";
    /**
    * Generates CDKTF code for importing a CoreDefaultSecurityList 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 CoreDefaultSecurityList to import
    * @param importFromId The id of the existing CoreDefaultSecurityList that should be imported. Refer to the {@link https://registry.terraform.io/providers/oracle/oci/6.18.0/docs/resources/core_default_security_list#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the CoreDefaultSecurityList 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/core_default_security_list oci_core_default_security_list} 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 CoreDefaultSecurityListConfig
    */
    constructor(scope: Construct, id: string, config: CoreDefaultSecurityListConfig);
    private _compartmentId?;
    get compartmentId(): string;
    set compartmentId(value: string);
    resetCompartmentId(): void;
    get compartmentIdInput(): string | undefined;
    private _definedTags?;
    get definedTags(): {
        [key: string]: string;
    };
    set definedTags(value: {
        [key: string]: string;
    });
    resetDefinedTags(): void;
    get definedTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    resetDisplayName(): void;
    get displayNameInput(): string | undefined;
    private _freeformTags?;
    get freeformTags(): {
        [key: string]: string;
    };
    set freeformTags(value: {
        [key: string]: string;
    });
    resetFreeformTags(): void;
    get freeformTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _manageDefaultResourceId?;
    get manageDefaultResourceId(): string;
    set manageDefaultResourceId(value: string);
    get manageDefaultResourceIdInput(): string | undefined;
    get state(): string;
    get timeCreated(): string;
    private _egressSecurityRules;
    get egressSecurityRules(): CoreDefaultSecurityListEgressSecurityRulesList;
    putEgressSecurityRules(value: CoreDefaultSecurityListEgressSecurityRules[] | cdktf.IResolvable): void;
    resetEgressSecurityRules(): void;
    get egressSecurityRulesInput(): cdktf.IResolvable | CoreDefaultSecurityListEgressSecurityRules[] | undefined;
    private _ingressSecurityRules;
    get ingressSecurityRules(): CoreDefaultSecurityListIngressSecurityRulesList;
    putIngressSecurityRules(value: CoreDefaultSecurityListIngressSecurityRules[] | cdktf.IResolvable): void;
    resetIngressSecurityRules(): void;
    get ingressSecurityRulesInput(): cdktf.IResolvable | CoreDefaultSecurityListIngressSecurityRules[] | undefined;
    private _timeouts;
    get timeouts(): CoreDefaultSecurityListTimeoutsOutputReference;
    putTimeouts(value: CoreDefaultSecurityListTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | CoreDefaultSecurityListTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
