/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface DatastreamStreamConfig extends cdktf.TerraformMetaArguments {
    /**
    * Create the stream without validating it.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#create_without_validation DatastreamStream#create_without_validation}
    */
    readonly createWithoutValidation?: boolean | cdktf.IResolvable;
    /**
    * A reference to a KMS encryption key. If provided, it will be used to encrypt the data. If left blank, data
    * will be encrypted using an internal Stream-specific encryption key provisioned through KMS.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#customer_managed_encryption_key DatastreamStream#customer_managed_encryption_key}
    */
    readonly customerManagedEncryptionKey?: string;
    /**
    * Desired state of the Stream. Set this field to 'RUNNING' to start the stream,
    * 'NOT_STARTED' to create the stream without starting and 'PAUSED' to pause
    * the stream from a 'RUNNING' state.
    * Possible values: NOT_STARTED, RUNNING, PAUSED. Default: NOT_STARTED
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#desired_state DatastreamStream#desired_state}
    */
    readonly desiredState?: string;
    /**
    * Display name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#display_name DatastreamStream#display_name}
    */
    readonly displayName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#id DatastreamStream#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;
    /**
    * Labels.
    *
    * **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
    * Please refer to the field 'effective_labels' for all of the labels present on the resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#labels DatastreamStream#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The name of the location this stream is located in.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#location DatastreamStream#location}
    */
    readonly location: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#project DatastreamStream#project}
    */
    readonly project?: string;
    /**
    * The stream identifier.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#stream_id DatastreamStream#stream_id}
    */
    readonly streamId: string;
    /**
    * backfill_all block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#backfill_all DatastreamStream#backfill_all}
    */
    readonly backfillAll?: DatastreamStreamBackfillAll;
    /**
    * backfill_none block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#backfill_none DatastreamStream#backfill_none}
    */
    readonly backfillNone?: DatastreamStreamBackfillNone;
    /**
    * destination_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#destination_config DatastreamStream#destination_config}
    */
    readonly destinationConfig: DatastreamStreamDestinationConfig;
    /**
    * source_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#source_config DatastreamStream#source_config}
    */
    readonly sourceConfig: DatastreamStreamSourceConfig;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#timeouts DatastreamStream#timeouts}
    */
    readonly timeouts?: DatastreamStreamTimeouts;
}
export interface DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns {
    /**
    * Column collation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#collation DatastreamStream#collation}
    */
    readonly collation?: string;
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The MySQL data type. Full data types list can be found here:
    * https://dev.mysql.com/doc/refman/8.0/en/data-types.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
    /**
    * Whether or not the column can accept a null value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#nullable DatastreamStream#nullable}
    */
    readonly nullable?: boolean | cdktf.IResolvable;
    /**
    * The ordinal position of the column in the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#ordinal_position DatastreamStream#ordinal_position}
    */
    readonly ordinalPosition?: number;
    /**
    * Whether or not the column represents a primary key.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#primary_key DatastreamStream#primary_key}
    */
    readonly primaryKey?: boolean | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumnsToTerraform(struct?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumnsToHclTerraform(struct?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumnsOutputReference 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(): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable | undefined);
    private _collation?;
    get collation(): string;
    set collation(value: string);
    resetCollation(): void;
    get collationInput(): string | undefined;
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    private _nullable?;
    get nullable(): boolean | cdktf.IResolvable;
    set nullable(value: boolean | cdktf.IResolvable);
    resetNullable(): void;
    get nullableInput(): boolean | cdktf.IResolvable | undefined;
    private _ordinalPosition?;
    get ordinalPosition(): number;
    set ordinalPosition(value: number);
    resetOrdinalPosition(): void;
    get ordinalPositionInput(): number | undefined;
    private _primaryKey?;
    get primaryKey(): boolean | cdktf.IResolvable;
    set primaryKey(value: boolean | cdktf.IResolvable);
    resetPrimaryKey(): void;
    get primaryKeyInput(): boolean | cdktf.IResolvable | undefined;
}
export declare class DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | 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): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumnsOutputReference;
}
export interface DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * mysql_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_columns DatastreamStream#mysql_columns}
    */
    readonly mysqlColumns?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesToTerraform(struct?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesToHclTerraform(struct?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesOutputReference 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(): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _mysqlColumns;
    get mysqlColumns(): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumnsList;
    putMysqlColumns(value: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | cdktf.IResolvable): void;
    resetMysqlColumns(): void;
    get mysqlColumnsInput(): cdktf.IResolvable | DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | undefined;
}
export declare class DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables[] | 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): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesOutputReference;
}
export interface DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases {
    /**
    * Database name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#database DatastreamStream#database}
    */
    readonly database: string;
    /**
    * mysql_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_tables DatastreamStream#mysql_tables}
    */
    readonly mysqlTables?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesToTerraform(struct?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesToHclTerraform(struct?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesOutputReference 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(): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases | cdktf.IResolvable | undefined);
    private _database?;
    get database(): string;
    set database(value: string);
    get databaseInput(): string | undefined;
    private _mysqlTables;
    get mysqlTables(): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTablesList;
    putMysqlTables(value: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables[] | cdktf.IResolvable): void;
    resetMysqlTables(): void;
    get mysqlTablesInput(): cdktf.IResolvable | DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesMysqlTables[] | undefined;
}
export declare class DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases[] | 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): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesOutputReference;
}
export interface DatastreamStreamBackfillAllMysqlExcludedObjects {
    /**
    * mysql_databases block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_databases DatastreamStream#mysql_databases}
    */
    readonly mysqlDatabases: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllMysqlExcludedObjectsToTerraform(struct?: DatastreamStreamBackfillAllMysqlExcludedObjectsOutputReference | DatastreamStreamBackfillAllMysqlExcludedObjects): any;
export declare function datastreamStreamBackfillAllMysqlExcludedObjectsToHclTerraform(struct?: DatastreamStreamBackfillAllMysqlExcludedObjectsOutputReference | DatastreamStreamBackfillAllMysqlExcludedObjects): any;
export declare class DatastreamStreamBackfillAllMysqlExcludedObjectsOutputReference 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(): DatastreamStreamBackfillAllMysqlExcludedObjects | undefined;
    set internalValue(value: DatastreamStreamBackfillAllMysqlExcludedObjects | undefined);
    private _mysqlDatabases;
    get mysqlDatabases(): DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabasesList;
    putMysqlDatabases(value: DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases[] | cdktf.IResolvable): void;
    get mysqlDatabasesInput(): cdktf.IResolvable | DatastreamStreamBackfillAllMysqlExcludedObjectsMysqlDatabases[] | undefined;
}
export interface DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The Oracle data type. Full data types list can be found here:
    * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
}
export declare function datastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumnsToTerraform(struct?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumnsToHclTerraform(struct?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumnsOutputReference 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(): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get encoding(): string;
    get length(): number;
    get nullable(): cdktf.IResolvable;
    get ordinalPosition(): number;
    get precision(): number;
    get primaryKey(): cdktf.IResolvable;
    get scale(): number;
}
export declare class DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns[] | 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): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumnsOutputReference;
}
export interface DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * oracle_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_columns DatastreamStream#oracle_columns}
    */
    readonly oracleColumns?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesToTerraform(struct?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesToHclTerraform(struct?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOutputReference 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(): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _oracleColumns;
    get oracleColumns(): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumnsList;
    putOracleColumns(value: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns[] | cdktf.IResolvable): void;
    resetOracleColumns(): void;
    get oracleColumnsInput(): cdktf.IResolvable | DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOracleColumns[] | undefined;
}
export declare class DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables[] | 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): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesOutputReference;
}
export interface DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas {
    /**
    * Schema name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * oracle_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_tables DatastreamStream#oracle_tables}
    */
    readonly oracleTables?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasToTerraform(struct?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasToHclTerraform(struct?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOutputReference 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(): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _oracleTables;
    get oracleTables(): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTablesList;
    putOracleTables(value: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables[] | cdktf.IResolvable): void;
    resetOracleTables(): void;
    get oracleTablesInput(): cdktf.IResolvable | DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOracleTables[] | undefined;
}
export declare class DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas[] | 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): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasOutputReference;
}
export interface DatastreamStreamBackfillAllOracleExcludedObjects {
    /**
    * oracle_schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_schemas DatastreamStream#oracle_schemas}
    */
    readonly oracleSchemas: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllOracleExcludedObjectsToTerraform(struct?: DatastreamStreamBackfillAllOracleExcludedObjectsOutputReference | DatastreamStreamBackfillAllOracleExcludedObjects): any;
export declare function datastreamStreamBackfillAllOracleExcludedObjectsToHclTerraform(struct?: DatastreamStreamBackfillAllOracleExcludedObjectsOutputReference | DatastreamStreamBackfillAllOracleExcludedObjects): any;
export declare class DatastreamStreamBackfillAllOracleExcludedObjectsOutputReference 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(): DatastreamStreamBackfillAllOracleExcludedObjects | undefined;
    set internalValue(value: DatastreamStreamBackfillAllOracleExcludedObjects | undefined);
    private _oracleSchemas;
    get oracleSchemas(): DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemasList;
    putOracleSchemas(value: DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas[] | cdktf.IResolvable): void;
    get oracleSchemasInput(): cdktf.IResolvable | DatastreamStreamBackfillAllOracleExcludedObjectsOracleSchemas[] | undefined;
}
export interface DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The PostgreSQL data type. Full data types list can be found here:
    * https://www.postgresql.org/docs/current/datatype.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
    /**
    * Whether or not the column can accept a null value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#nullable DatastreamStream#nullable}
    */
    readonly nullable?: boolean | cdktf.IResolvable;
    /**
    * The ordinal position of the column in the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#ordinal_position DatastreamStream#ordinal_position}
    */
    readonly ordinalPosition?: number;
    /**
    * Whether or not the column represents a primary key.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#primary_key DatastreamStream#primary_key}
    */
    readonly primaryKey?: boolean | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsToTerraform(struct?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsToHclTerraform(struct?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsOutputReference 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(): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    private _nullable?;
    get nullable(): boolean | cdktf.IResolvable;
    set nullable(value: boolean | cdktf.IResolvable);
    resetNullable(): void;
    get nullableInput(): boolean | cdktf.IResolvable | undefined;
    private _ordinalPosition?;
    get ordinalPosition(): number;
    set ordinalPosition(value: number);
    resetOrdinalPosition(): void;
    get ordinalPositionInput(): number | undefined;
    get precision(): number;
    private _primaryKey?;
    get primaryKey(): boolean | cdktf.IResolvable;
    set primaryKey(value: boolean | cdktf.IResolvable);
    resetPrimaryKey(): void;
    get primaryKeyInput(): boolean | cdktf.IResolvable | undefined;
    get scale(): number;
}
export declare class DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | 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): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsOutputReference;
}
export interface DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * postgresql_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_columns DatastreamStream#postgresql_columns}
    */
    readonly postgresqlColumns?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesToTerraform(struct?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesToHclTerraform(struct?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesOutputReference 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(): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _postgresqlColumns;
    get postgresqlColumns(): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsList;
    putPostgresqlColumns(value: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | cdktf.IResolvable): void;
    resetPostgresqlColumns(): void;
    get postgresqlColumnsInput(): cdktf.IResolvable | DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | undefined;
}
export declare class DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables[] | 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): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesOutputReference;
}
export interface DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas {
    /**
    * Database name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * postgresql_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_tables DatastreamStream#postgresql_tables}
    */
    readonly postgresqlTables?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasToTerraform(struct?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasToHclTerraform(struct?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasOutputReference 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(): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _postgresqlTables;
    get postgresqlTables(): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTablesList;
    putPostgresqlTables(value: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables[] | cdktf.IResolvable): void;
    resetPostgresqlTables(): void;
    get postgresqlTablesInput(): cdktf.IResolvable | DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasPostgresqlTables[] | undefined;
}
export declare class DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas[] | 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): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasOutputReference;
}
export interface DatastreamStreamBackfillAllPostgresqlExcludedObjects {
    /**
    * postgresql_schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_schemas DatastreamStream#postgresql_schemas}
    */
    readonly postgresqlSchemas: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllPostgresqlExcludedObjectsToTerraform(struct?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsOutputReference | DatastreamStreamBackfillAllPostgresqlExcludedObjects): any;
export declare function datastreamStreamBackfillAllPostgresqlExcludedObjectsToHclTerraform(struct?: DatastreamStreamBackfillAllPostgresqlExcludedObjectsOutputReference | DatastreamStreamBackfillAllPostgresqlExcludedObjects): any;
export declare class DatastreamStreamBackfillAllPostgresqlExcludedObjectsOutputReference 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(): DatastreamStreamBackfillAllPostgresqlExcludedObjects | undefined;
    set internalValue(value: DatastreamStreamBackfillAllPostgresqlExcludedObjects | undefined);
    private _postgresqlSchemas;
    get postgresqlSchemas(): DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemasList;
    putPostgresqlSchemas(value: DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas[] | cdktf.IResolvable): void;
    get postgresqlSchemasInput(): cdktf.IResolvable | DatastreamStreamBackfillAllPostgresqlExcludedObjectsPostgresqlSchemas[] | undefined;
}
export interface DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields {
    /**
    * Field name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#name DatastreamStream#name}
    */
    readonly name?: string;
}
export declare function datastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFieldsToTerraform(struct?: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFieldsToHclTerraform(struct?: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFieldsOutputReference 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(): DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
}
export declare class DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFieldsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields[] | 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): DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFieldsOutputReference;
}
export interface DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects {
    /**
    * Name of object in Salesforce Org.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#object_name DatastreamStream#object_name}
    */
    readonly objectName?: string;
    /**
    * fields block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#fields DatastreamStream#fields}
    */
    readonly fields?: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllSalesforceExcludedObjectsObjectsToTerraform(struct?: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllSalesforceExcludedObjectsObjectsToHclTerraform(struct?: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsOutputReference 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(): DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects | cdktf.IResolvable | undefined);
    private _objectName?;
    get objectName(): string;
    set objectName(value: string);
    resetObjectName(): void;
    get objectNameInput(): string | undefined;
    private _fields;
    get fields(): DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFieldsList;
    putFields(value: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields[] | cdktf.IResolvable): void;
    resetFields(): void;
    get fieldsInput(): cdktf.IResolvable | DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsFields[] | undefined;
}
export declare class DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects[] | 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): DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsOutputReference;
}
export interface DatastreamStreamBackfillAllSalesforceExcludedObjects {
    /**
    * objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#objects DatastreamStream#objects}
    */
    readonly objects: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllSalesforceExcludedObjectsToTerraform(struct?: DatastreamStreamBackfillAllSalesforceExcludedObjectsOutputReference | DatastreamStreamBackfillAllSalesforceExcludedObjects): any;
export declare function datastreamStreamBackfillAllSalesforceExcludedObjectsToHclTerraform(struct?: DatastreamStreamBackfillAllSalesforceExcludedObjectsOutputReference | DatastreamStreamBackfillAllSalesforceExcludedObjects): any;
export declare class DatastreamStreamBackfillAllSalesforceExcludedObjectsOutputReference 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(): DatastreamStreamBackfillAllSalesforceExcludedObjects | undefined;
    set internalValue(value: DatastreamStreamBackfillAllSalesforceExcludedObjects | undefined);
    private _objects;
    get objects(): DatastreamStreamBackfillAllSalesforceExcludedObjectsObjectsList;
    putObjects(value: DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects[] | cdktf.IResolvable): void;
    get objectsInput(): cdktf.IResolvable | DatastreamStreamBackfillAllSalesforceExcludedObjectsObjects[] | undefined;
}
export interface DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The SQL Server data type. Full data types list can be found here:
    * https://learn.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver16
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
}
export declare function datastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumnsToTerraform(struct?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumnsToHclTerraform(struct?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumnsOutputReference 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(): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    get nullable(): cdktf.IResolvable;
    get ordinalPosition(): number;
    get precision(): number;
    get primaryKey(): cdktf.IResolvable;
    get scale(): number;
}
export declare class DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns[] | 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): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumnsOutputReference;
}
export interface DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#columns DatastreamStream#columns}
    */
    readonly columns?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesToTerraform(struct?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesToHclTerraform(struct?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesOutputReference 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(): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _columns;
    get columns(): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumnsList;
    putColumns(value: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns[] | cdktf.IResolvable): void;
    resetColumns(): void;
    get columnsInput(): cdktf.IResolvable | DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesColumns[] | undefined;
}
export declare class DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables[] | 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): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesOutputReference;
}
export interface DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas {
    /**
    * Schema name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#tables DatastreamStream#tables}
    */
    readonly tables?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllSqlServerExcludedObjectsSchemasToTerraform(struct?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamBackfillAllSqlServerExcludedObjectsSchemasToHclTerraform(struct?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasOutputReference 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(): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _tables;
    get tables(): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTablesList;
    putTables(value: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables[] | cdktf.IResolvable): void;
    resetTables(): void;
    get tablesInput(): cdktf.IResolvable | DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasTables[] | undefined;
}
export declare class DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas[] | 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): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasOutputReference;
}
export interface DatastreamStreamBackfillAllSqlServerExcludedObjects {
    /**
    * schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schemas DatastreamStream#schemas}
    */
    readonly schemas: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamBackfillAllSqlServerExcludedObjectsToTerraform(struct?: DatastreamStreamBackfillAllSqlServerExcludedObjectsOutputReference | DatastreamStreamBackfillAllSqlServerExcludedObjects): any;
export declare function datastreamStreamBackfillAllSqlServerExcludedObjectsToHclTerraform(struct?: DatastreamStreamBackfillAllSqlServerExcludedObjectsOutputReference | DatastreamStreamBackfillAllSqlServerExcludedObjects): any;
export declare class DatastreamStreamBackfillAllSqlServerExcludedObjectsOutputReference 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(): DatastreamStreamBackfillAllSqlServerExcludedObjects | undefined;
    set internalValue(value: DatastreamStreamBackfillAllSqlServerExcludedObjects | undefined);
    private _schemas;
    get schemas(): DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemasList;
    putSchemas(value: DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas[] | cdktf.IResolvable): void;
    get schemasInput(): cdktf.IResolvable | DatastreamStreamBackfillAllSqlServerExcludedObjectsSchemas[] | undefined;
}
export interface DatastreamStreamBackfillAll {
    /**
    * mysql_excluded_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_excluded_objects DatastreamStream#mysql_excluded_objects}
    */
    readonly mysqlExcludedObjects?: DatastreamStreamBackfillAllMysqlExcludedObjects;
    /**
    * oracle_excluded_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_excluded_objects DatastreamStream#oracle_excluded_objects}
    */
    readonly oracleExcludedObjects?: DatastreamStreamBackfillAllOracleExcludedObjects;
    /**
    * postgresql_excluded_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_excluded_objects DatastreamStream#postgresql_excluded_objects}
    */
    readonly postgresqlExcludedObjects?: DatastreamStreamBackfillAllPostgresqlExcludedObjects;
    /**
    * salesforce_excluded_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#salesforce_excluded_objects DatastreamStream#salesforce_excluded_objects}
    */
    readonly salesforceExcludedObjects?: DatastreamStreamBackfillAllSalesforceExcludedObjects;
    /**
    * sql_server_excluded_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#sql_server_excluded_objects DatastreamStream#sql_server_excluded_objects}
    */
    readonly sqlServerExcludedObjects?: DatastreamStreamBackfillAllSqlServerExcludedObjects;
}
export declare function datastreamStreamBackfillAllToTerraform(struct?: DatastreamStreamBackfillAllOutputReference | DatastreamStreamBackfillAll): any;
export declare function datastreamStreamBackfillAllToHclTerraform(struct?: DatastreamStreamBackfillAllOutputReference | DatastreamStreamBackfillAll): any;
export declare class DatastreamStreamBackfillAllOutputReference 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(): DatastreamStreamBackfillAll | undefined;
    set internalValue(value: DatastreamStreamBackfillAll | undefined);
    private _mysqlExcludedObjects;
    get mysqlExcludedObjects(): DatastreamStreamBackfillAllMysqlExcludedObjectsOutputReference;
    putMysqlExcludedObjects(value: DatastreamStreamBackfillAllMysqlExcludedObjects): void;
    resetMysqlExcludedObjects(): void;
    get mysqlExcludedObjectsInput(): DatastreamStreamBackfillAllMysqlExcludedObjects | undefined;
    private _oracleExcludedObjects;
    get oracleExcludedObjects(): DatastreamStreamBackfillAllOracleExcludedObjectsOutputReference;
    putOracleExcludedObjects(value: DatastreamStreamBackfillAllOracleExcludedObjects): void;
    resetOracleExcludedObjects(): void;
    get oracleExcludedObjectsInput(): DatastreamStreamBackfillAllOracleExcludedObjects | undefined;
    private _postgresqlExcludedObjects;
    get postgresqlExcludedObjects(): DatastreamStreamBackfillAllPostgresqlExcludedObjectsOutputReference;
    putPostgresqlExcludedObjects(value: DatastreamStreamBackfillAllPostgresqlExcludedObjects): void;
    resetPostgresqlExcludedObjects(): void;
    get postgresqlExcludedObjectsInput(): DatastreamStreamBackfillAllPostgresqlExcludedObjects | undefined;
    private _salesforceExcludedObjects;
    get salesforceExcludedObjects(): DatastreamStreamBackfillAllSalesforceExcludedObjectsOutputReference;
    putSalesforceExcludedObjects(value: DatastreamStreamBackfillAllSalesforceExcludedObjects): void;
    resetSalesforceExcludedObjects(): void;
    get salesforceExcludedObjectsInput(): DatastreamStreamBackfillAllSalesforceExcludedObjects | undefined;
    private _sqlServerExcludedObjects;
    get sqlServerExcludedObjects(): DatastreamStreamBackfillAllSqlServerExcludedObjectsOutputReference;
    putSqlServerExcludedObjects(value: DatastreamStreamBackfillAllSqlServerExcludedObjects): void;
    resetSqlServerExcludedObjects(): void;
    get sqlServerExcludedObjectsInput(): DatastreamStreamBackfillAllSqlServerExcludedObjects | undefined;
}
export interface DatastreamStreamBackfillNone {
}
export declare function datastreamStreamBackfillNoneToTerraform(struct?: DatastreamStreamBackfillNoneOutputReference | DatastreamStreamBackfillNone): any;
export declare function datastreamStreamBackfillNoneToHclTerraform(struct?: DatastreamStreamBackfillNoneOutputReference | DatastreamStreamBackfillNone): any;
export declare class DatastreamStreamBackfillNoneOutputReference 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(): DatastreamStreamBackfillNone | undefined;
    set internalValue(value: DatastreamStreamBackfillNone | undefined);
}
export interface DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnly {
}
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnlyToTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnly): any;
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnlyToHclTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnly): any;
export declare class DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutputReference 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(): DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnly | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnly | undefined);
}
export interface DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfig {
    /**
    * The Cloud Storage bucket name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#bucket DatastreamStream#bucket}
    */
    readonly bucket: string;
    /**
    * The bigquery connection. Format: '{project}.{location}.{name}'
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#connection_name DatastreamStream#connection_name}
    */
    readonly connectionName: string;
    /**
    * The file format.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#file_format DatastreamStream#file_format}
    */
    readonly fileFormat: string;
    /**
    * The root path inside the Cloud Storage bucket.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#root_path DatastreamStream#root_path}
    */
    readonly rootPath?: string;
    /**
    * The table format.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table_format DatastreamStream#table_format}
    */
    readonly tableFormat: string;
}
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfigToTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfigOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfig): any;
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfigToHclTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfigOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfig): any;
export declare class DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfigOutputReference 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(): DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfig | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfig | undefined);
    private _bucket?;
    get bucket(): string;
    set bucket(value: string);
    get bucketInput(): string | undefined;
    private _connectionName?;
    get connectionName(): string;
    set connectionName(value: string);
    get connectionNameInput(): string | undefined;
    private _fileFormat?;
    get fileFormat(): string;
    set fileFormat(value: string);
    get fileFormatInput(): string | undefined;
    private _rootPath?;
    get rootPath(): string;
    set rootPath(value: string);
    resetRootPath(): void;
    get rootPathInput(): string | undefined;
    private _tableFormat?;
    get tableFormat(): string;
    set tableFormat(value: string);
    get tableFormatInput(): string | undefined;
}
export interface DatastreamStreamDestinationConfigBigqueryDestinationConfigMerge {
}
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigMergeToTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigMergeOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigMerge): any;
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigMergeToHclTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigMergeOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigMerge): any;
export declare class DatastreamStreamDestinationConfigBigqueryDestinationConfigMergeOutputReference 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(): DatastreamStreamDestinationConfigBigqueryDestinationConfigMerge | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigMerge | undefined);
}
export interface DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset {
    /**
    * Dataset ID in the format projects/{project}/datasets/{dataset_id} or
    * {project}:{dataset_id}
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#dataset_id DatastreamStream#dataset_id}
    */
    readonly datasetId: string;
}
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetToTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset): any;
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetToHclTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset): any;
export declare class DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputReference 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(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset | undefined);
    private _datasetId?;
    get datasetId(): string;
    set datasetId(value: string);
    get datasetIdInput(): string | undefined;
}
export interface DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate {
    /**
    * If supplied, every created dataset will have its name prefixed by the provided value.
    * The prefix and name will be separated by an underscore. i.e. _.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#dataset_id_prefix DatastreamStream#dataset_id_prefix}
    */
    readonly datasetIdPrefix?: string;
    /**
    * Describes the Cloud KMS encryption key that will be used to protect destination BigQuery
    * table. The BigQuery Service Account associated with your project requires access to this
    * encryption key. i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey}.
    * See https://cloud.google.com/bigquery/docs/customer-managed-encryption for more information.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#kms_key_name DatastreamStream#kms_key_name}
    */
    readonly kmsKeyName?: string;
    /**
    * The geographic location where the dataset should reside.
    * See https://cloud.google.com/bigquery/docs/locations for supported locations.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#location DatastreamStream#location}
    */
    readonly location: string;
}
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateToTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate): any;
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateToHclTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate): any;
export declare class DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputReference 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(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate | undefined);
    private _datasetIdPrefix?;
    get datasetIdPrefix(): string;
    set datasetIdPrefix(value: string);
    resetDatasetIdPrefix(): void;
    get datasetIdPrefixInput(): string | undefined;
    private _kmsKeyName?;
    get kmsKeyName(): string;
    set kmsKeyName(value: string);
    resetKmsKeyName(): void;
    get kmsKeyNameInput(): string | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
}
export interface DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets {
    /**
    * dataset_template block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#dataset_template DatastreamStream#dataset_template}
    */
    readonly datasetTemplate: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate;
}
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsToTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets): any;
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsToHclTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets): any;
export declare class DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputReference 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(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets | undefined);
    private _datasetTemplate;
    get datasetTemplate(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplateOutputReference;
    putDatasetTemplate(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate): void;
    get datasetTemplateInput(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsDatasetTemplate | undefined;
}
export interface DatastreamStreamDestinationConfigBigqueryDestinationConfig {
    /**
    * The guaranteed data freshness (in seconds) when querying tables created by the stream.
    * Editing this field will only affect new tables created in the future, but existing tables
    * will not be impacted. Lower values mean that queries will return fresher data, but may result in higher cost.
    * A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_freshness DatastreamStream#data_freshness}
    */
    readonly dataFreshness?: string;
    /**
    * append_only block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#append_only DatastreamStream#append_only}
    */
    readonly appendOnly?: DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnly;
    /**
    * blmt_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#blmt_config DatastreamStream#blmt_config}
    */
    readonly blmtConfig?: DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfig;
    /**
    * merge block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#merge DatastreamStream#merge}
    */
    readonly merge?: DatastreamStreamDestinationConfigBigqueryDestinationConfigMerge;
    /**
    * single_target_dataset block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#single_target_dataset DatastreamStream#single_target_dataset}
    */
    readonly singleTargetDataset?: DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset;
    /**
    * source_hierarchy_datasets block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#source_hierarchy_datasets DatastreamStream#source_hierarchy_datasets}
    */
    readonly sourceHierarchyDatasets?: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets;
}
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigToTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfig): any;
export declare function datastreamStreamDestinationConfigBigqueryDestinationConfigToHclTerraform(struct?: DatastreamStreamDestinationConfigBigqueryDestinationConfigOutputReference | DatastreamStreamDestinationConfigBigqueryDestinationConfig): any;
export declare class DatastreamStreamDestinationConfigBigqueryDestinationConfigOutputReference 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(): DatastreamStreamDestinationConfigBigqueryDestinationConfig | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigBigqueryDestinationConfig | undefined);
    private _dataFreshness?;
    get dataFreshness(): string;
    set dataFreshness(value: string);
    resetDataFreshness(): void;
    get dataFreshnessInput(): string | undefined;
    private _appendOnly;
    get appendOnly(): DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnlyOutputReference;
    putAppendOnly(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnly): void;
    resetAppendOnly(): void;
    get appendOnlyInput(): DatastreamStreamDestinationConfigBigqueryDestinationConfigAppendOnly | undefined;
    private _blmtConfig;
    get blmtConfig(): DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfigOutputReference;
    putBlmtConfig(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfig): void;
    resetBlmtConfig(): void;
    get blmtConfigInput(): DatastreamStreamDestinationConfigBigqueryDestinationConfigBlmtConfig | undefined;
    private _merge;
    get merge(): DatastreamStreamDestinationConfigBigqueryDestinationConfigMergeOutputReference;
    putMerge(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigMerge): void;
    resetMerge(): void;
    get mergeInput(): DatastreamStreamDestinationConfigBigqueryDestinationConfigMerge | undefined;
    private _singleTargetDataset;
    get singleTargetDataset(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDatasetOutputReference;
    putSingleTargetDataset(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset): void;
    resetSingleTargetDataset(): void;
    get singleTargetDatasetInput(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSingleTargetDataset | undefined;
    private _sourceHierarchyDatasets;
    get sourceHierarchyDatasets(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasetsOutputReference;
    putSourceHierarchyDatasets(value: DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets): void;
    resetSourceHierarchyDatasets(): void;
    get sourceHierarchyDatasetsInput(): DatastreamStreamDestinationConfigBigqueryDestinationConfigSourceHierarchyDatasets | undefined;
}
export interface DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormat {
}
export declare function datastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormatToTerraform(struct?: DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputReference | DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormat): any;
export declare function datastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormatToHclTerraform(struct?: DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputReference | DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormat): any;
export declare class DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputReference 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(): DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormat | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormat | undefined);
}
export interface DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormat {
    /**
    * Compression of the loaded JSON file. Possible values: ["NO_COMPRESSION", "GZIP"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#compression DatastreamStream#compression}
    */
    readonly compression?: string;
    /**
    * The schema file format along JSON data files. Possible values: ["NO_SCHEMA_FILE", "AVRO_SCHEMA_FILE"]
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema_file_format DatastreamStream#schema_file_format}
    */
    readonly schemaFileFormat?: string;
}
export declare function datastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormatToTerraform(struct?: DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputReference | DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormat): any;
export declare function datastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormatToHclTerraform(struct?: DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputReference | DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormat): any;
export declare class DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputReference 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(): DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormat | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormat | undefined);
    private _compression?;
    get compression(): string;
    set compression(value: string);
    resetCompression(): void;
    get compressionInput(): string | undefined;
    private _schemaFileFormat?;
    get schemaFileFormat(): string;
    set schemaFileFormat(value: string);
    resetSchemaFileFormat(): void;
    get schemaFileFormatInput(): string | undefined;
}
export interface DatastreamStreamDestinationConfigGcsDestinationConfig {
    /**
    * The maximum duration for which new events are added before a file is closed and a new file is created.
    * A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s". Defaults to 900s.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#file_rotation_interval DatastreamStream#file_rotation_interval}
    */
    readonly fileRotationInterval?: string;
    /**
    * The maximum file size to be saved in the bucket.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#file_rotation_mb DatastreamStream#file_rotation_mb}
    */
    readonly fileRotationMb?: number;
    /**
    * Path inside the Cloud Storage bucket to write data to.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#path DatastreamStream#path}
    */
    readonly path?: string;
    /**
    * avro_file_format block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#avro_file_format DatastreamStream#avro_file_format}
    */
    readonly avroFileFormat?: DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormat;
    /**
    * json_file_format block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#json_file_format DatastreamStream#json_file_format}
    */
    readonly jsonFileFormat?: DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormat;
}
export declare function datastreamStreamDestinationConfigGcsDestinationConfigToTerraform(struct?: DatastreamStreamDestinationConfigGcsDestinationConfigOutputReference | DatastreamStreamDestinationConfigGcsDestinationConfig): any;
export declare function datastreamStreamDestinationConfigGcsDestinationConfigToHclTerraform(struct?: DatastreamStreamDestinationConfigGcsDestinationConfigOutputReference | DatastreamStreamDestinationConfigGcsDestinationConfig): any;
export declare class DatastreamStreamDestinationConfigGcsDestinationConfigOutputReference 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(): DatastreamStreamDestinationConfigGcsDestinationConfig | undefined;
    set internalValue(value: DatastreamStreamDestinationConfigGcsDestinationConfig | undefined);
    private _fileRotationInterval?;
    get fileRotationInterval(): string;
    set fileRotationInterval(value: string);
    resetFileRotationInterval(): void;
    get fileRotationIntervalInput(): string | undefined;
    private _fileRotationMb?;
    get fileRotationMb(): number;
    set fileRotationMb(value: number);
    resetFileRotationMb(): void;
    get fileRotationMbInput(): number | undefined;
    private _path?;
    get path(): string;
    set path(value: string);
    resetPath(): void;
    get pathInput(): string | undefined;
    private _avroFileFormat;
    get avroFileFormat(): DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormatOutputReference;
    putAvroFileFormat(value: DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormat): void;
    resetAvroFileFormat(): void;
    get avroFileFormatInput(): DatastreamStreamDestinationConfigGcsDestinationConfigAvroFileFormat | undefined;
    private _jsonFileFormat;
    get jsonFileFormat(): DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormatOutputReference;
    putJsonFileFormat(value: DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormat): void;
    resetJsonFileFormat(): void;
    get jsonFileFormatInput(): DatastreamStreamDestinationConfigGcsDestinationConfigJsonFileFormat | undefined;
}
export interface DatastreamStreamDestinationConfig {
    /**
    * Destination connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name}
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#destination_connection_profile DatastreamStream#destination_connection_profile}
    */
    readonly destinationConnectionProfile: string;
    /**
    * bigquery_destination_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#bigquery_destination_config DatastreamStream#bigquery_destination_config}
    */
    readonly bigqueryDestinationConfig?: DatastreamStreamDestinationConfigBigqueryDestinationConfig;
    /**
    * gcs_destination_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#gcs_destination_config DatastreamStream#gcs_destination_config}
    */
    readonly gcsDestinationConfig?: DatastreamStreamDestinationConfigGcsDestinationConfig;
}
export declare function datastreamStreamDestinationConfigToTerraform(struct?: DatastreamStreamDestinationConfigOutputReference | DatastreamStreamDestinationConfig): any;
export declare function datastreamStreamDestinationConfigToHclTerraform(struct?: DatastreamStreamDestinationConfigOutputReference | DatastreamStreamDestinationConfig): any;
export declare class DatastreamStreamDestinationConfigOutputReference 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(): DatastreamStreamDestinationConfig | undefined;
    set internalValue(value: DatastreamStreamDestinationConfig | undefined);
    private _destinationConnectionProfile?;
    get destinationConnectionProfile(): string;
    set destinationConnectionProfile(value: string);
    get destinationConnectionProfileInput(): string | undefined;
    private _bigqueryDestinationConfig;
    get bigqueryDestinationConfig(): DatastreamStreamDestinationConfigBigqueryDestinationConfigOutputReference;
    putBigqueryDestinationConfig(value: DatastreamStreamDestinationConfigBigqueryDestinationConfig): void;
    resetBigqueryDestinationConfig(): void;
    get bigqueryDestinationConfigInput(): DatastreamStreamDestinationConfigBigqueryDestinationConfig | undefined;
    private _gcsDestinationConfig;
    get gcsDestinationConfig(): DatastreamStreamDestinationConfigGcsDestinationConfigOutputReference;
    putGcsDestinationConfig(value: DatastreamStreamDestinationConfigGcsDestinationConfig): void;
    resetGcsDestinationConfig(): void;
    get gcsDestinationConfigInput(): DatastreamStreamDestinationConfigGcsDestinationConfig | undefined;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPosition {
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigBinaryLogPositionToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPositionOutputReference | DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPosition): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigBinaryLogPositionToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPositionOutputReference | DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPosition): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPositionOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPosition | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPosition | undefined);
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns {
    /**
    * Column collation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#collation DatastreamStream#collation}
    */
    readonly collation?: string;
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The MySQL data type. Full data types list can be found here:
    * https://dev.mysql.com/doc/refman/8.0/en/data-types.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
    /**
    * Whether or not the column can accept a null value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#nullable DatastreamStream#nullable}
    */
    readonly nullable?: boolean | cdktf.IResolvable;
    /**
    * The ordinal position of the column in the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#ordinal_position DatastreamStream#ordinal_position}
    */
    readonly ordinalPosition?: number;
    /**
    * Whether or not the column represents a primary key.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#primary_key DatastreamStream#primary_key}
    */
    readonly primaryKey?: boolean | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable | undefined);
    private _collation?;
    get collation(): string;
    set collation(value: string);
    resetCollation(): void;
    get collationInput(): string | undefined;
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    private _nullable?;
    get nullable(): boolean | cdktf.IResolvable;
    set nullable(value: boolean | cdktf.IResolvable);
    resetNullable(): void;
    get nullableInput(): boolean | cdktf.IResolvable | undefined;
    private _ordinalPosition?;
    get ordinalPosition(): number;
    set ordinalPosition(value: number);
    resetOrdinalPosition(): void;
    get ordinalPositionInput(): number | undefined;
    private _primaryKey?;
    get primaryKey(): boolean | cdktf.IResolvable;
    set primaryKey(value: boolean | cdktf.IResolvable);
    resetPrimaryKey(): void;
    get primaryKeyInput(): boolean | cdktf.IResolvable | undefined;
}
export declare class DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | 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): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsOutputReference;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * mysql_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_columns DatastreamStream#mysql_columns}
    */
    readonly mysqlColumns?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _mysqlColumns;
    get mysqlColumns(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsList;
    putMysqlColumns(value: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | cdktf.IResolvable): void;
    resetMysqlColumns(): void;
    get mysqlColumnsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | undefined;
}
export declare class DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables[] | 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): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesOutputReference;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases {
    /**
    * Database name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#database DatastreamStream#database}
    */
    readonly database: string;
    /**
    * mysql_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_tables DatastreamStream#mysql_tables}
    */
    readonly mysqlTables?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases | cdktf.IResolvable | undefined);
    private _database?;
    get database(): string;
    set database(value: string);
    get databaseInput(): string | undefined;
    private _mysqlTables;
    get mysqlTables(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTablesList;
    putMysqlTables(value: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables[] | cdktf.IResolvable): void;
    resetMysqlTables(): void;
    get mysqlTablesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesMysqlTables[] | undefined;
}
export declare class DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases[] | 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): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesOutputReference;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjects {
    /**
    * mysql_databases block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_databases DatastreamStream#mysql_databases}
    */
    readonly mysqlDatabases: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjects): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjects): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjects | undefined);
    private _mysqlDatabases;
    get mysqlDatabases(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabasesList;
    putMysqlDatabases(value: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases[] | cdktf.IResolvable): void;
    get mysqlDatabasesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsMysqlDatabases[] | undefined;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigGtid {
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigGtidToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigGtidOutputReference | DatastreamStreamSourceConfigMysqlSourceConfigGtid): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigGtidToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigGtidOutputReference | DatastreamStreamSourceConfigMysqlSourceConfigGtid): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigGtidOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigGtid | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigGtid | undefined);
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns {
    /**
    * Column collation.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#collation DatastreamStream#collation}
    */
    readonly collation?: string;
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The MySQL data type. Full data types list can be found here:
    * https://dev.mysql.com/doc/refman/8.0/en/data-types.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
    /**
    * Whether or not the column can accept a null value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#nullable DatastreamStream#nullable}
    */
    readonly nullable?: boolean | cdktf.IResolvable;
    /**
    * The ordinal position of the column in the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#ordinal_position DatastreamStream#ordinal_position}
    */
    readonly ordinalPosition?: number;
    /**
    * Whether or not the column represents a primary key.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#primary_key DatastreamStream#primary_key}
    */
    readonly primaryKey?: boolean | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns | cdktf.IResolvable | undefined);
    private _collation?;
    get collation(): string;
    set collation(value: string);
    resetCollation(): void;
    get collationInput(): string | undefined;
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    private _nullable?;
    get nullable(): boolean | cdktf.IResolvable;
    set nullable(value: boolean | cdktf.IResolvable);
    resetNullable(): void;
    get nullableInput(): boolean | cdktf.IResolvable | undefined;
    private _ordinalPosition?;
    get ordinalPosition(): number;
    set ordinalPosition(value: number);
    resetOrdinalPosition(): void;
    get ordinalPositionInput(): number | undefined;
    private _primaryKey?;
    get primaryKey(): boolean | cdktf.IResolvable;
    set primaryKey(value: boolean | cdktf.IResolvable);
    resetPrimaryKey(): void;
    get primaryKeyInput(): boolean | cdktf.IResolvable | undefined;
}
export declare class DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | 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): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsOutputReference;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * mysql_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_columns DatastreamStream#mysql_columns}
    */
    readonly mysqlColumns?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _mysqlColumns;
    get mysqlColumns(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumnsList;
    putMysqlColumns(value: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | cdktf.IResolvable): void;
    resetMysqlColumns(): void;
    get mysqlColumnsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesMysqlColumns[] | undefined;
}
export declare class DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables[] | 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): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesOutputReference;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases {
    /**
    * Database name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#database DatastreamStream#database}
    */
    readonly database: string;
    /**
    * mysql_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_tables DatastreamStream#mysql_tables}
    */
    readonly mysqlTables?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases | cdktf.IResolvable | undefined);
    private _database?;
    get database(): string;
    set database(value: string);
    get databaseInput(): string | undefined;
    private _mysqlTables;
    get mysqlTables(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTablesList;
    putMysqlTables(value: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables[] | cdktf.IResolvable): void;
    resetMysqlTables(): void;
    get mysqlTablesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesMysqlTables[] | undefined;
}
export declare class DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases[] | 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): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesOutputReference;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjects {
    /**
    * mysql_databases block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_databases DatastreamStream#mysql_databases}
    */
    readonly mysqlDatabases: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjects): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjects): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjects | undefined);
    private _mysqlDatabases;
    get mysqlDatabases(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabasesList;
    putMysqlDatabases(value: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases[] | cdktf.IResolvable): void;
    get mysqlDatabasesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsMysqlDatabases[] | undefined;
}
export interface DatastreamStreamSourceConfigMysqlSourceConfig {
    /**
    * Maximum number of concurrent backfill tasks. The number should be non negative.
    * If not set (or set to 0), the system's default value will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#max_concurrent_backfill_tasks DatastreamStream#max_concurrent_backfill_tasks}
    */
    readonly maxConcurrentBackfillTasks?: number;
    /**
    * Maximum number of concurrent CDC tasks. The number should be non negative.
    * If not set (or set to 0), the system's default value will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#max_concurrent_cdc_tasks DatastreamStream#max_concurrent_cdc_tasks}
    */
    readonly maxConcurrentCdcTasks?: number;
    /**
    * binary_log_position block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#binary_log_position DatastreamStream#binary_log_position}
    */
    readonly binaryLogPosition?: DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPosition;
    /**
    * exclude_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#exclude_objects DatastreamStream#exclude_objects}
    */
    readonly excludeObjects?: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjects;
    /**
    * gtid block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#gtid DatastreamStream#gtid}
    */
    readonly gtid?: DatastreamStreamSourceConfigMysqlSourceConfigGtid;
    /**
    * include_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#include_objects DatastreamStream#include_objects}
    */
    readonly includeObjects?: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjects;
}
export declare function datastreamStreamSourceConfigMysqlSourceConfigToTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigOutputReference | DatastreamStreamSourceConfigMysqlSourceConfig): any;
export declare function datastreamStreamSourceConfigMysqlSourceConfigToHclTerraform(struct?: DatastreamStreamSourceConfigMysqlSourceConfigOutputReference | DatastreamStreamSourceConfigMysqlSourceConfig): any;
export declare class DatastreamStreamSourceConfigMysqlSourceConfigOutputReference 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(): DatastreamStreamSourceConfigMysqlSourceConfig | undefined;
    set internalValue(value: DatastreamStreamSourceConfigMysqlSourceConfig | undefined);
    private _maxConcurrentBackfillTasks?;
    get maxConcurrentBackfillTasks(): number;
    set maxConcurrentBackfillTasks(value: number);
    resetMaxConcurrentBackfillTasks(): void;
    get maxConcurrentBackfillTasksInput(): number | undefined;
    private _maxConcurrentCdcTasks?;
    get maxConcurrentCdcTasks(): number;
    set maxConcurrentCdcTasks(value: number);
    resetMaxConcurrentCdcTasks(): void;
    get maxConcurrentCdcTasksInput(): number | undefined;
    private _binaryLogPosition;
    get binaryLogPosition(): DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPositionOutputReference;
    putBinaryLogPosition(value: DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPosition): void;
    resetBinaryLogPosition(): void;
    get binaryLogPositionInput(): DatastreamStreamSourceConfigMysqlSourceConfigBinaryLogPosition | undefined;
    private _excludeObjects;
    get excludeObjects(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjectsOutputReference;
    putExcludeObjects(value: DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjects): void;
    resetExcludeObjects(): void;
    get excludeObjectsInput(): DatastreamStreamSourceConfigMysqlSourceConfigExcludeObjects | undefined;
    private _gtid;
    get gtid(): DatastreamStreamSourceConfigMysqlSourceConfigGtidOutputReference;
    putGtid(value: DatastreamStreamSourceConfigMysqlSourceConfigGtid): void;
    resetGtid(): void;
    get gtidInput(): DatastreamStreamSourceConfigMysqlSourceConfigGtid | undefined;
    private _includeObjects;
    get includeObjects(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjectsOutputReference;
    putIncludeObjects(value: DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjects): void;
    resetIncludeObjects(): void;
    get includeObjectsInput(): DatastreamStreamSourceConfigMysqlSourceConfigIncludeObjects | undefined;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjects {
}
export declare function datastreamStreamSourceConfigOracleSourceConfigDropLargeObjectsToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjectsOutputReference | DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjects): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigDropLargeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjectsOutputReference | DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjects): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjectsOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjects | undefined);
}
export interface DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The Oracle data type. Full data types list can be found here:
    * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumnsToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumnsToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumnsOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get encoding(): string;
    get length(): number;
    get nullable(): cdktf.IResolvable;
    get ordinalPosition(): number;
    get precision(): number;
    get primaryKey(): cdktf.IResolvable;
    get scale(): number;
}
export declare class DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns[] | 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): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumnsOutputReference;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * oracle_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_columns DatastreamStream#oracle_columns}
    */
    readonly oracleColumns?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _oracleColumns;
    get oracleColumns(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumnsList;
    putOracleColumns(value: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns[] | cdktf.IResolvable): void;
    resetOracleColumns(): void;
    get oracleColumnsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOracleColumns[] | undefined;
}
export declare class DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables[] | 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): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesOutputReference;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas {
    /**
    * Schema name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * oracle_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_tables DatastreamStream#oracle_tables}
    */
    readonly oracleTables?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _oracleTables;
    get oracleTables(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTablesList;
    putOracleTables(value: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables[] | cdktf.IResolvable): void;
    resetOracleTables(): void;
    get oracleTablesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOracleTables[] | undefined;
}
export declare class DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas[] | 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): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasOutputReference;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigExcludeObjects {
    /**
    * oracle_schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_schemas DatastreamStream#oracle_schemas}
    */
    readonly oracleSchemas: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigExcludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigOracleSourceConfigExcludeObjects): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigExcludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigOracleSourceConfigExcludeObjects): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjects | undefined);
    private _oracleSchemas;
    get oracleSchemas(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemasList;
    putOracleSchemas(value: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas[] | cdktf.IResolvable): void;
    get oracleSchemasInput(): cdktf.IResolvable | DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOracleSchemas[] | undefined;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The Oracle data type. Full data types list can be found here:
    * https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumnsToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumnsToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumnsOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get encoding(): string;
    get length(): number;
    get nullable(): cdktf.IResolvable;
    get ordinalPosition(): number;
    get precision(): number;
    get primaryKey(): cdktf.IResolvable;
    get scale(): number;
}
export declare class DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns[] | 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): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumnsOutputReference;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * oracle_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_columns DatastreamStream#oracle_columns}
    */
    readonly oracleColumns?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _oracleColumns;
    get oracleColumns(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumnsList;
    putOracleColumns(value: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns[] | cdktf.IResolvable): void;
    resetOracleColumns(): void;
    get oracleColumnsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOracleColumns[] | undefined;
}
export declare class DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables[] | 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): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesOutputReference;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas {
    /**
    * Schema name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * oracle_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_tables DatastreamStream#oracle_tables}
    */
    readonly oracleTables?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _oracleTables;
    get oracleTables(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTablesList;
    putOracleTables(value: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables[] | cdktf.IResolvable): void;
    resetOracleTables(): void;
    get oracleTablesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOracleTables[] | undefined;
}
export declare class DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas[] | 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): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasOutputReference;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigIncludeObjects {
    /**
    * oracle_schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_schemas DatastreamStream#oracle_schemas}
    */
    readonly oracleSchemas: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigIncludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigOracleSourceConfigIncludeObjects): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigIncludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigOracleSourceConfigIncludeObjects): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjects | undefined);
    private _oracleSchemas;
    get oracleSchemas(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemasList;
    putOracleSchemas(value: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas[] | cdktf.IResolvable): void;
    get oracleSchemasInput(): cdktf.IResolvable | DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOracleSchemas[] | undefined;
}
export interface DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjects {
}
export declare function datastreamStreamSourceConfigOracleSourceConfigStreamLargeObjectsToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutputReference | DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjects): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigStreamLargeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutputReference | DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjects): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjects | undefined);
}
export interface DatastreamStreamSourceConfigOracleSourceConfig {
    /**
    * Maximum number of concurrent backfill tasks. The number should be non negative.
    * If not set (or set to 0), the system's default value will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#max_concurrent_backfill_tasks DatastreamStream#max_concurrent_backfill_tasks}
    */
    readonly maxConcurrentBackfillTasks?: number;
    /**
    * Maximum number of concurrent CDC tasks. The number should be non negative.
    * If not set (or set to 0), the system's default value will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#max_concurrent_cdc_tasks DatastreamStream#max_concurrent_cdc_tasks}
    */
    readonly maxConcurrentCdcTasks?: number;
    /**
    * drop_large_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#drop_large_objects DatastreamStream#drop_large_objects}
    */
    readonly dropLargeObjects?: DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjects;
    /**
    * exclude_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#exclude_objects DatastreamStream#exclude_objects}
    */
    readonly excludeObjects?: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjects;
    /**
    * include_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#include_objects DatastreamStream#include_objects}
    */
    readonly includeObjects?: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjects;
    /**
    * stream_large_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#stream_large_objects DatastreamStream#stream_large_objects}
    */
    readonly streamLargeObjects?: DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjects;
}
export declare function datastreamStreamSourceConfigOracleSourceConfigToTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigOutputReference | DatastreamStreamSourceConfigOracleSourceConfig): any;
export declare function datastreamStreamSourceConfigOracleSourceConfigToHclTerraform(struct?: DatastreamStreamSourceConfigOracleSourceConfigOutputReference | DatastreamStreamSourceConfigOracleSourceConfig): any;
export declare class DatastreamStreamSourceConfigOracleSourceConfigOutputReference 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(): DatastreamStreamSourceConfigOracleSourceConfig | undefined;
    set internalValue(value: DatastreamStreamSourceConfigOracleSourceConfig | undefined);
    private _maxConcurrentBackfillTasks?;
    get maxConcurrentBackfillTasks(): number;
    set maxConcurrentBackfillTasks(value: number);
    resetMaxConcurrentBackfillTasks(): void;
    get maxConcurrentBackfillTasksInput(): number | undefined;
    private _maxConcurrentCdcTasks?;
    get maxConcurrentCdcTasks(): number;
    set maxConcurrentCdcTasks(value: number);
    resetMaxConcurrentCdcTasks(): void;
    get maxConcurrentCdcTasksInput(): number | undefined;
    private _dropLargeObjects;
    get dropLargeObjects(): DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjectsOutputReference;
    putDropLargeObjects(value: DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjects): void;
    resetDropLargeObjects(): void;
    get dropLargeObjectsInput(): DatastreamStreamSourceConfigOracleSourceConfigDropLargeObjects | undefined;
    private _excludeObjects;
    get excludeObjects(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjectsOutputReference;
    putExcludeObjects(value: DatastreamStreamSourceConfigOracleSourceConfigExcludeObjects): void;
    resetExcludeObjects(): void;
    get excludeObjectsInput(): DatastreamStreamSourceConfigOracleSourceConfigExcludeObjects | undefined;
    private _includeObjects;
    get includeObjects(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjectsOutputReference;
    putIncludeObjects(value: DatastreamStreamSourceConfigOracleSourceConfigIncludeObjects): void;
    resetIncludeObjects(): void;
    get includeObjectsInput(): DatastreamStreamSourceConfigOracleSourceConfigIncludeObjects | undefined;
    private _streamLargeObjects;
    get streamLargeObjects(): DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjectsOutputReference;
    putStreamLargeObjects(value: DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjects): void;
    resetStreamLargeObjects(): void;
    get streamLargeObjectsInput(): DatastreamStreamSourceConfigOracleSourceConfigStreamLargeObjects | undefined;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The PostgreSQL data type. Full data types list can be found here:
    * https://www.postgresql.org/docs/current/datatype.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
    /**
    * Whether or not the column can accept a null value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#nullable DatastreamStream#nullable}
    */
    readonly nullable?: boolean | cdktf.IResolvable;
    /**
    * The ordinal position of the column in the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#ordinal_position DatastreamStream#ordinal_position}
    */
    readonly ordinalPosition?: number;
    /**
    * Whether or not the column represents a primary key.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#primary_key DatastreamStream#primary_key}
    */
    readonly primaryKey?: boolean | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    private _nullable?;
    get nullable(): boolean | cdktf.IResolvable;
    set nullable(value: boolean | cdktf.IResolvable);
    resetNullable(): void;
    get nullableInput(): boolean | cdktf.IResolvable | undefined;
    private _ordinalPosition?;
    get ordinalPosition(): number;
    set ordinalPosition(value: number);
    resetOrdinalPosition(): void;
    get ordinalPositionInput(): number | undefined;
    get precision(): number;
    private _primaryKey?;
    get primaryKey(): boolean | cdktf.IResolvable;
    set primaryKey(value: boolean | cdktf.IResolvable);
    resetPrimaryKey(): void;
    get primaryKeyInput(): boolean | cdktf.IResolvable | undefined;
    get scale(): number;
}
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | 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): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsOutputReference;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * postgresql_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_columns DatastreamStream#postgresql_columns}
    */
    readonly postgresqlColumns?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _postgresqlColumns;
    get postgresqlColumns(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsList;
    putPostgresqlColumns(value: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | cdktf.IResolvable): void;
    resetPostgresqlColumns(): void;
    get postgresqlColumnsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | undefined;
}
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables[] | 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): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesOutputReference;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas {
    /**
    * Database name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * postgresql_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_tables DatastreamStream#postgresql_tables}
    */
    readonly postgresqlTables?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _postgresqlTables;
    get postgresqlTables(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTablesList;
    putPostgresqlTables(value: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables[] | cdktf.IResolvable): void;
    resetPostgresqlTables(): void;
    get postgresqlTablesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasPostgresqlTables[] | undefined;
}
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas[] | 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): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasOutputReference;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjects {
    /**
    * postgresql_schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_schemas DatastreamStream#postgresql_schemas}
    */
    readonly postgresqlSchemas: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjects): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjects): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjects | undefined);
    private _postgresqlSchemas;
    get postgresqlSchemas(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemasList;
    putPostgresqlSchemas(value: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas[] | cdktf.IResolvable): void;
    get postgresqlSchemasInput(): cdktf.IResolvable | DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsPostgresqlSchemas[] | undefined;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The PostgreSQL data type. Full data types list can be found here:
    * https://www.postgresql.org/docs/current/datatype.html
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
    /**
    * Whether or not the column can accept a null value.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#nullable DatastreamStream#nullable}
    */
    readonly nullable?: boolean | cdktf.IResolvable;
    /**
    * The ordinal position of the column in the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#ordinal_position DatastreamStream#ordinal_position}
    */
    readonly ordinalPosition?: number;
    /**
    * Whether or not the column represents a primary key.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#primary_key DatastreamStream#primary_key}
    */
    readonly primaryKey?: boolean | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    private _nullable?;
    get nullable(): boolean | cdktf.IResolvable;
    set nullable(value: boolean | cdktf.IResolvable);
    resetNullable(): void;
    get nullableInput(): boolean | cdktf.IResolvable | undefined;
    private _ordinalPosition?;
    get ordinalPosition(): number;
    set ordinalPosition(value: number);
    resetOrdinalPosition(): void;
    get ordinalPositionInput(): number | undefined;
    get precision(): number;
    private _primaryKey?;
    get primaryKey(): boolean | cdktf.IResolvable;
    set primaryKey(value: boolean | cdktf.IResolvable);
    resetPrimaryKey(): void;
    get primaryKeyInput(): boolean | cdktf.IResolvable | undefined;
    get scale(): number;
}
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | 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): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsOutputReference;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * postgresql_columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_columns DatastreamStream#postgresql_columns}
    */
    readonly postgresqlColumns?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _postgresqlColumns;
    get postgresqlColumns(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumnsList;
    putPostgresqlColumns(value: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | cdktf.IResolvable): void;
    resetPostgresqlColumns(): void;
    get postgresqlColumnsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesPostgresqlColumns[] | undefined;
}
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables[] | 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): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesOutputReference;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas {
    /**
    * Database name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * postgresql_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_tables DatastreamStream#postgresql_tables}
    */
    readonly postgresqlTables?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _postgresqlTables;
    get postgresqlTables(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTablesList;
    putPostgresqlTables(value: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables[] | cdktf.IResolvable): void;
    resetPostgresqlTables(): void;
    get postgresqlTablesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasPostgresqlTables[] | undefined;
}
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas[] | 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): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasOutputReference;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjects {
    /**
    * postgresql_schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_schemas DatastreamStream#postgresql_schemas}
    */
    readonly postgresqlSchemas: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjects): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjects): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjects | undefined);
    private _postgresqlSchemas;
    get postgresqlSchemas(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemasList;
    putPostgresqlSchemas(value: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas[] | cdktf.IResolvable): void;
    get postgresqlSchemasInput(): cdktf.IResolvable | DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsPostgresqlSchemas[] | undefined;
}
export interface DatastreamStreamSourceConfigPostgresqlSourceConfig {
    /**
    * Maximum number of concurrent backfill tasks. The number should be non
    * negative. If not set (or set to 0), the system's default value will be used.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#max_concurrent_backfill_tasks DatastreamStream#max_concurrent_backfill_tasks}
    */
    readonly maxConcurrentBackfillTasks?: number;
    /**
    * The name of the publication that includes the set of all tables
    * that are defined in the stream's include_objects.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#publication DatastreamStream#publication}
    */
    readonly publication: string;
    /**
    * The name of the logical replication slot that's configured with
    * the pgoutput plugin.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#replication_slot DatastreamStream#replication_slot}
    */
    readonly replicationSlot: string;
    /**
    * exclude_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#exclude_objects DatastreamStream#exclude_objects}
    */
    readonly excludeObjects?: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjects;
    /**
    * include_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#include_objects DatastreamStream#include_objects}
    */
    readonly includeObjects?: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjects;
}
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigToTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigOutputReference | DatastreamStreamSourceConfigPostgresqlSourceConfig): any;
export declare function datastreamStreamSourceConfigPostgresqlSourceConfigToHclTerraform(struct?: DatastreamStreamSourceConfigPostgresqlSourceConfigOutputReference | DatastreamStreamSourceConfigPostgresqlSourceConfig): any;
export declare class DatastreamStreamSourceConfigPostgresqlSourceConfigOutputReference 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(): DatastreamStreamSourceConfigPostgresqlSourceConfig | undefined;
    set internalValue(value: DatastreamStreamSourceConfigPostgresqlSourceConfig | undefined);
    private _maxConcurrentBackfillTasks?;
    get maxConcurrentBackfillTasks(): number;
    set maxConcurrentBackfillTasks(value: number);
    resetMaxConcurrentBackfillTasks(): void;
    get maxConcurrentBackfillTasksInput(): number | undefined;
    private _publication?;
    get publication(): string;
    set publication(value: string);
    get publicationInput(): string | undefined;
    private _replicationSlot?;
    get replicationSlot(): string;
    set replicationSlot(value: string);
    get replicationSlotInput(): string | undefined;
    private _excludeObjects;
    get excludeObjects(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjectsOutputReference;
    putExcludeObjects(value: DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjects): void;
    resetExcludeObjects(): void;
    get excludeObjectsInput(): DatastreamStreamSourceConfigPostgresqlSourceConfigExcludeObjects | undefined;
    private _includeObjects;
    get includeObjects(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjectsOutputReference;
    putIncludeObjects(value: DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjects): void;
    resetIncludeObjects(): void;
    get includeObjectsInput(): DatastreamStreamSourceConfigPostgresqlSourceConfigIncludeObjects | undefined;
}
export interface DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields {
    /**
    * Field name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#name DatastreamStream#name}
    */
    readonly name?: string;
}
export declare function datastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFieldsToTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFieldsToHclTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFieldsOutputReference 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(): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
}
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFieldsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields[] | 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): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFieldsOutputReference;
}
export interface DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects {
    /**
    * Name of object in Salesforce Org.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#object_name DatastreamStream#object_name}
    */
    readonly objectName?: string;
    /**
    * fields block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#fields DatastreamStream#fields}
    */
    readonly fields?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsToTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsOutputReference 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(): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects | cdktf.IResolvable | undefined);
    private _objectName?;
    get objectName(): string;
    set objectName(value: string);
    resetObjectName(): void;
    get objectNameInput(): string | undefined;
    private _fields;
    get fields(): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFieldsList;
    putFields(value: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields[] | cdktf.IResolvable): void;
    resetFields(): void;
    get fieldsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsFields[] | undefined;
}
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects[] | 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): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsOutputReference;
}
export interface DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjects {
    /**
    * objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#objects DatastreamStream#objects}
    */
    readonly objects: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjects): any;
export declare function datastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjects): any;
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsOutputReference 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(): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjects | undefined);
    private _objects;
    get objects(): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjectsList;
    putObjects(value: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects[] | cdktf.IResolvable): void;
    get objectsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsObjects[] | undefined;
}
export interface DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields {
    /**
    * Field name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#name DatastreamStream#name}
    */
    readonly name?: string;
}
export declare function datastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFieldsToTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFieldsToHclTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFieldsOutputReference 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(): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
}
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFieldsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields[] | 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): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFieldsOutputReference;
}
export interface DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects {
    /**
    * Name of object in Salesforce Org.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#object_name DatastreamStream#object_name}
    */
    readonly objectName?: string;
    /**
    * fields block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#fields DatastreamStream#fields}
    */
    readonly fields?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsToTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsOutputReference 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(): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects | cdktf.IResolvable | undefined);
    private _objectName?;
    get objectName(): string;
    set objectName(value: string);
    resetObjectName(): void;
    get objectNameInput(): string | undefined;
    private _fields;
    get fields(): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFieldsList;
    putFields(value: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields[] | cdktf.IResolvable): void;
    resetFields(): void;
    get fieldsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsFields[] | undefined;
}
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects[] | 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): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsOutputReference;
}
export interface DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjects {
    /**
    * objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#objects DatastreamStream#objects}
    */
    readonly objects: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjects): any;
export declare function datastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjects): any;
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsOutputReference 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(): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjects | undefined);
    private _objects;
    get objects(): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjectsList;
    putObjects(value: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects[] | cdktf.IResolvable): void;
    get objectsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsObjects[] | undefined;
}
export interface DatastreamStreamSourceConfigSalesforceSourceConfig {
    /**
    * Salesforce objects polling interval. The interval at which new changes will be polled for each object. The duration must be between 5 minutes and 24 hours.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#polling_interval DatastreamStream#polling_interval}
    */
    readonly pollingInterval: string;
    /**
    * exclude_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#exclude_objects DatastreamStream#exclude_objects}
    */
    readonly excludeObjects?: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjects;
    /**
    * include_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#include_objects DatastreamStream#include_objects}
    */
    readonly includeObjects?: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjects;
}
export declare function datastreamStreamSourceConfigSalesforceSourceConfigToTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigOutputReference | DatastreamStreamSourceConfigSalesforceSourceConfig): any;
export declare function datastreamStreamSourceConfigSalesforceSourceConfigToHclTerraform(struct?: DatastreamStreamSourceConfigSalesforceSourceConfigOutputReference | DatastreamStreamSourceConfigSalesforceSourceConfig): any;
export declare class DatastreamStreamSourceConfigSalesforceSourceConfigOutputReference 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(): DatastreamStreamSourceConfigSalesforceSourceConfig | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSalesforceSourceConfig | undefined);
    private _pollingInterval?;
    get pollingInterval(): string;
    set pollingInterval(value: string);
    get pollingIntervalInput(): string | undefined;
    private _excludeObjects;
    get excludeObjects(): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjectsOutputReference;
    putExcludeObjects(value: DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjects): void;
    resetExcludeObjects(): void;
    get excludeObjectsInput(): DatastreamStreamSourceConfigSalesforceSourceConfigExcludeObjects | undefined;
    private _includeObjects;
    get includeObjects(): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjectsOutputReference;
    putIncludeObjects(value: DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjects): void;
    resetIncludeObjects(): void;
    get includeObjectsInput(): DatastreamStreamSourceConfigSalesforceSourceConfigIncludeObjects | undefined;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigChangeTables {
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigChangeTablesToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigChangeTablesOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfigChangeTables): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigChangeTablesToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigChangeTablesOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfigChangeTables): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigChangeTablesOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigChangeTables | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigChangeTables | undefined);
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The SQL Server data type. Full data types list can be found here:
    * https://learn.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver16
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumnsToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumnsToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumnsOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    get nullable(): cdktf.IResolvable;
    get ordinalPosition(): number;
    get precision(): number;
    get primaryKey(): cdktf.IResolvable;
    get scale(): number;
}
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns[] | 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): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumnsOutputReference;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#columns DatastreamStream#columns}
    */
    readonly columns?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _columns;
    get columns(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumnsList;
    putColumns(value: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns[] | cdktf.IResolvable): void;
    resetColumns(): void;
    get columnsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesColumns[] | undefined;
}
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables[] | 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): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesOutputReference;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas {
    /**
    * Schema name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#tables DatastreamStream#tables}
    */
    readonly tables?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _tables;
    get tables(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTablesList;
    putTables(value: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables[] | cdktf.IResolvable): void;
    resetTables(): void;
    get tablesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasTables[] | undefined;
}
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas[] | 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): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasOutputReference;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjects {
    /**
    * schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schemas DatastreamStream#schemas}
    */
    readonly schemas: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjects): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjects): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjects | undefined);
    private _schemas;
    get schemas(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemasList;
    putSchemas(value: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas[] | cdktf.IResolvable): void;
    get schemasInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsSchemas[] | undefined;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns {
    /**
    * Column name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#column DatastreamStream#column}
    */
    readonly column?: string;
    /**
    * The SQL Server data type. Full data types list can be found here:
    * https://learn.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver16
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#data_type DatastreamStream#data_type}
    */
    readonly dataType?: string;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumnsToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumnsToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumnsOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns | cdktf.IResolvable | undefined);
    private _column?;
    get column(): string;
    set column(value: string);
    resetColumn(): void;
    get columnInput(): string | undefined;
    private _dataType?;
    get dataType(): string;
    set dataType(value: string);
    resetDataType(): void;
    get dataTypeInput(): string | undefined;
    get length(): number;
    get nullable(): cdktf.IResolvable;
    get ordinalPosition(): number;
    get precision(): number;
    get primaryKey(): cdktf.IResolvable;
    get scale(): number;
}
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumnsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns[] | 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): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumnsOutputReference;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables {
    /**
    * Table name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#table DatastreamStream#table}
    */
    readonly table: string;
    /**
    * columns block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#columns DatastreamStream#columns}
    */
    readonly columns?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables | cdktf.IResolvable | undefined);
    private _table?;
    get table(): string;
    set table(value: string);
    get tableInput(): string | undefined;
    private _columns;
    get columns(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumnsList;
    putColumns(value: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns[] | cdktf.IResolvable): void;
    resetColumns(): void;
    get columnsInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesColumns[] | undefined;
}
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables[] | 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): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesOutputReference;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas {
    /**
    * Schema name.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schema DatastreamStream#schema}
    */
    readonly schema: string;
    /**
    * tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#tables DatastreamStream#tables}
    */
    readonly tables?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas | cdktf.IResolvable): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas | cdktf.IResolvable): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas | cdktf.IResolvable | undefined);
    private _schema?;
    get schema(): string;
    set schema(value: string);
    get schemaInput(): string | undefined;
    private _tables;
    get tables(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTablesList;
    putTables(value: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables[] | cdktf.IResolvable): void;
    resetTables(): void;
    get tablesInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasTables[] | undefined;
}
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas[] | 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): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasOutputReference;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjects {
    /**
    * schemas block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#schemas DatastreamStream#schemas}
    */
    readonly schemas: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas[] | cdktf.IResolvable;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjects): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjects): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjects | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjects | undefined);
    private _schemas;
    get schemas(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemasList;
    putSchemas(value: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas[] | cdktf.IResolvable): void;
    get schemasInput(): cdktf.IResolvable | DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsSchemas[] | undefined;
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogs {
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigTransactionLogsToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogsOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogs): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigTransactionLogsToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogsOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogs): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogsOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogs | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogs | undefined);
}
export interface DatastreamStreamSourceConfigSqlServerSourceConfig {
    /**
    * Max concurrent backfill tasks.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#max_concurrent_backfill_tasks DatastreamStream#max_concurrent_backfill_tasks}
    */
    readonly maxConcurrentBackfillTasks?: number;
    /**
    * Max concurrent CDC tasks.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#max_concurrent_cdc_tasks DatastreamStream#max_concurrent_cdc_tasks}
    */
    readonly maxConcurrentCdcTasks?: number;
    /**
    * change_tables block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#change_tables DatastreamStream#change_tables}
    */
    readonly changeTables?: DatastreamStreamSourceConfigSqlServerSourceConfigChangeTables;
    /**
    * exclude_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#exclude_objects DatastreamStream#exclude_objects}
    */
    readonly excludeObjects?: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjects;
    /**
    * include_objects block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#include_objects DatastreamStream#include_objects}
    */
    readonly includeObjects?: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjects;
    /**
    * transaction_logs block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#transaction_logs DatastreamStream#transaction_logs}
    */
    readonly transactionLogs?: DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogs;
}
export declare function datastreamStreamSourceConfigSqlServerSourceConfigToTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfig): any;
export declare function datastreamStreamSourceConfigSqlServerSourceConfigToHclTerraform(struct?: DatastreamStreamSourceConfigSqlServerSourceConfigOutputReference | DatastreamStreamSourceConfigSqlServerSourceConfig): any;
export declare class DatastreamStreamSourceConfigSqlServerSourceConfigOutputReference 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(): DatastreamStreamSourceConfigSqlServerSourceConfig | undefined;
    set internalValue(value: DatastreamStreamSourceConfigSqlServerSourceConfig | undefined);
    private _maxConcurrentBackfillTasks?;
    get maxConcurrentBackfillTasks(): number;
    set maxConcurrentBackfillTasks(value: number);
    resetMaxConcurrentBackfillTasks(): void;
    get maxConcurrentBackfillTasksInput(): number | undefined;
    private _maxConcurrentCdcTasks?;
    get maxConcurrentCdcTasks(): number;
    set maxConcurrentCdcTasks(value: number);
    resetMaxConcurrentCdcTasks(): void;
    get maxConcurrentCdcTasksInput(): number | undefined;
    private _changeTables;
    get changeTables(): DatastreamStreamSourceConfigSqlServerSourceConfigChangeTablesOutputReference;
    putChangeTables(value: DatastreamStreamSourceConfigSqlServerSourceConfigChangeTables): void;
    resetChangeTables(): void;
    get changeTablesInput(): DatastreamStreamSourceConfigSqlServerSourceConfigChangeTables | undefined;
    private _excludeObjects;
    get excludeObjects(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjectsOutputReference;
    putExcludeObjects(value: DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjects): void;
    resetExcludeObjects(): void;
    get excludeObjectsInput(): DatastreamStreamSourceConfigSqlServerSourceConfigExcludeObjects | undefined;
    private _includeObjects;
    get includeObjects(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjectsOutputReference;
    putIncludeObjects(value: DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjects): void;
    resetIncludeObjects(): void;
    get includeObjectsInput(): DatastreamStreamSourceConfigSqlServerSourceConfigIncludeObjects | undefined;
    private _transactionLogs;
    get transactionLogs(): DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogsOutputReference;
    putTransactionLogs(value: DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogs): void;
    resetTransactionLogs(): void;
    get transactionLogsInput(): DatastreamStreamSourceConfigSqlServerSourceConfigTransactionLogs | undefined;
}
export interface DatastreamStreamSourceConfig {
    /**
    * Source connection profile resource. Format: projects/{project}/locations/{location}/connectionProfiles/{name}
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#source_connection_profile DatastreamStream#source_connection_profile}
    */
    readonly sourceConnectionProfile: string;
    /**
    * mysql_source_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#mysql_source_config DatastreamStream#mysql_source_config}
    */
    readonly mysqlSourceConfig?: DatastreamStreamSourceConfigMysqlSourceConfig;
    /**
    * oracle_source_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#oracle_source_config DatastreamStream#oracle_source_config}
    */
    readonly oracleSourceConfig?: DatastreamStreamSourceConfigOracleSourceConfig;
    /**
    * postgresql_source_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#postgresql_source_config DatastreamStream#postgresql_source_config}
    */
    readonly postgresqlSourceConfig?: DatastreamStreamSourceConfigPostgresqlSourceConfig;
    /**
    * salesforce_source_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#salesforce_source_config DatastreamStream#salesforce_source_config}
    */
    readonly salesforceSourceConfig?: DatastreamStreamSourceConfigSalesforceSourceConfig;
    /**
    * sql_server_source_config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#sql_server_source_config DatastreamStream#sql_server_source_config}
    */
    readonly sqlServerSourceConfig?: DatastreamStreamSourceConfigSqlServerSourceConfig;
}
export declare function datastreamStreamSourceConfigToTerraform(struct?: DatastreamStreamSourceConfigOutputReference | DatastreamStreamSourceConfig): any;
export declare function datastreamStreamSourceConfigToHclTerraform(struct?: DatastreamStreamSourceConfigOutputReference | DatastreamStreamSourceConfig): any;
export declare class DatastreamStreamSourceConfigOutputReference 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(): DatastreamStreamSourceConfig | undefined;
    set internalValue(value: DatastreamStreamSourceConfig | undefined);
    private _sourceConnectionProfile?;
    get sourceConnectionProfile(): string;
    set sourceConnectionProfile(value: string);
    get sourceConnectionProfileInput(): string | undefined;
    private _mysqlSourceConfig;
    get mysqlSourceConfig(): DatastreamStreamSourceConfigMysqlSourceConfigOutputReference;
    putMysqlSourceConfig(value: DatastreamStreamSourceConfigMysqlSourceConfig): void;
    resetMysqlSourceConfig(): void;
    get mysqlSourceConfigInput(): DatastreamStreamSourceConfigMysqlSourceConfig | undefined;
    private _oracleSourceConfig;
    get oracleSourceConfig(): DatastreamStreamSourceConfigOracleSourceConfigOutputReference;
    putOracleSourceConfig(value: DatastreamStreamSourceConfigOracleSourceConfig): void;
    resetOracleSourceConfig(): void;
    get oracleSourceConfigInput(): DatastreamStreamSourceConfigOracleSourceConfig | undefined;
    private _postgresqlSourceConfig;
    get postgresqlSourceConfig(): DatastreamStreamSourceConfigPostgresqlSourceConfigOutputReference;
    putPostgresqlSourceConfig(value: DatastreamStreamSourceConfigPostgresqlSourceConfig): void;
    resetPostgresqlSourceConfig(): void;
    get postgresqlSourceConfigInput(): DatastreamStreamSourceConfigPostgresqlSourceConfig | undefined;
    private _salesforceSourceConfig;
    get salesforceSourceConfig(): DatastreamStreamSourceConfigSalesforceSourceConfigOutputReference;
    putSalesforceSourceConfig(value: DatastreamStreamSourceConfigSalesforceSourceConfig): void;
    resetSalesforceSourceConfig(): void;
    get salesforceSourceConfigInput(): DatastreamStreamSourceConfigSalesforceSourceConfig | undefined;
    private _sqlServerSourceConfig;
    get sqlServerSourceConfig(): DatastreamStreamSourceConfigSqlServerSourceConfigOutputReference;
    putSqlServerSourceConfig(value: DatastreamStreamSourceConfigSqlServerSourceConfig): void;
    resetSqlServerSourceConfig(): void;
    get sqlServerSourceConfigInput(): DatastreamStreamSourceConfigSqlServerSourceConfig | undefined;
}
export interface DatastreamStreamTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#create DatastreamStream#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#delete DatastreamStream#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#update DatastreamStream#update}
    */
    readonly update?: string;
}
export declare function datastreamStreamTimeoutsToTerraform(struct?: DatastreamStreamTimeouts | cdktf.IResolvable): any;
export declare function datastreamStreamTimeoutsToHclTerraform(struct?: DatastreamStreamTimeouts | cdktf.IResolvable): any;
export declare class DatastreamStreamTimeoutsOutputReference 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(): DatastreamStreamTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: DatastreamStreamTimeouts | 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/hashicorp/google/6.36.1/docs/resources/datastream_stream google_datastream_stream}
*/
export declare class DatastreamStream extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_datastream_stream";
    /**
    * Generates CDKTF code for importing a DatastreamStream 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 DatastreamStream to import
    * @param importFromId The id of the existing DatastreamStream that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.36.1/docs/resources/datastream_stream#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the DatastreamStream 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/hashicorp/google/6.36.1/docs/resources/datastream_stream google_datastream_stream} 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 DatastreamStreamConfig
    */
    constructor(scope: Construct, id: string, config: DatastreamStreamConfig);
    private _createWithoutValidation?;
    get createWithoutValidation(): boolean | cdktf.IResolvable;
    set createWithoutValidation(value: boolean | cdktf.IResolvable);
    resetCreateWithoutValidation(): void;
    get createWithoutValidationInput(): boolean | cdktf.IResolvable | undefined;
    private _customerManagedEncryptionKey?;
    get customerManagedEncryptionKey(): string;
    set customerManagedEncryptionKey(value: string);
    resetCustomerManagedEncryptionKey(): void;
    get customerManagedEncryptionKeyInput(): string | undefined;
    private _desiredState?;
    get desiredState(): string;
    set desiredState(value: string);
    resetDesiredState(): void;
    get desiredStateInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _labels?;
    get labels(): {
        [key: string]: string;
    };
    set labels(value: {
        [key: string]: string;
    });
    resetLabels(): void;
    get labelsInput(): {
        [key: string]: string;
    } | undefined;
    private _location?;
    get location(): string;
    set location(value: string);
    get locationInput(): string | undefined;
    get name(): string;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    get state(): string;
    private _streamId?;
    get streamId(): string;
    set streamId(value: string);
    get streamIdInput(): string | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    private _backfillAll;
    get backfillAll(): DatastreamStreamBackfillAllOutputReference;
    putBackfillAll(value: DatastreamStreamBackfillAll): void;
    resetBackfillAll(): void;
    get backfillAllInput(): DatastreamStreamBackfillAll | undefined;
    private _backfillNone;
    get backfillNone(): DatastreamStreamBackfillNoneOutputReference;
    putBackfillNone(value: DatastreamStreamBackfillNone): void;
    resetBackfillNone(): void;
    get backfillNoneInput(): DatastreamStreamBackfillNone | undefined;
    private _destinationConfig;
    get destinationConfig(): DatastreamStreamDestinationConfigOutputReference;
    putDestinationConfig(value: DatastreamStreamDestinationConfig): void;
    get destinationConfigInput(): DatastreamStreamDestinationConfig | undefined;
    private _sourceConfig;
    get sourceConfig(): DatastreamStreamSourceConfigOutputReference;
    putSourceConfig(value: DatastreamStreamSourceConfig): void;
    get sourceConfigInput(): DatastreamStreamSourceConfig | undefined;
    private _timeouts;
    get timeouts(): DatastreamStreamTimeoutsOutputReference;
    putTimeouts(value: DatastreamStreamTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | DatastreamStreamTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
