/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface BigqueryTableConfig extends cdktf.TerraformMetaArguments {
    /**
    * **Deprecated** Whether or not to allow table deletion when there are still resource tags attached.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#allow_resource_tags_on_deletion BigqueryTable#allow_resource_tags_on_deletion}
    */
    readonly allowResourceTagsOnDeletion?: boolean | cdktf.IResolvable;
    /**
    * Specifies column names to use for data clustering. Up to four top-level columns are allowed, and should be specified in descending priority order.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#clustering BigqueryTable#clustering}
    */
    readonly clustering?: string[];
    /**
    * The dataset ID to create the table in. Changing this forces a new resource to be created.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#dataset_id BigqueryTable#dataset_id}
    */
    readonly datasetId: string;
    /**
    * Whether Terraform will be prevented from destroying the instance. When the field is set to true or unset in Terraform state, a terraform apply or terraform destroy that would delete the table will fail. When the field is set to false, deleting the table is allowed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#deletion_protection BigqueryTable#deletion_protection}
    */
    readonly deletionProtection?: boolean | cdktf.IResolvable;
    /**
    * The field description.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#description BigqueryTable#description}
    */
    readonly description?: string;
    /**
    * The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#expiration_time BigqueryTable#expiration_time}
    */
    readonly expirationTime?: number;
    /**
    * A descriptive name for the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#friendly_name BigqueryTable#friendly_name}
    */
    readonly friendlyName?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#id BigqueryTable#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;
    /**
    * A mapping of labels to assign to the resource.
    *
    * 				**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/5.43.0/docs/resources/bigquery_table#labels BigqueryTable#labels}
    */
    readonly labels?: {
        [key: string]: string;
    };
    /**
    * The maximum staleness of data that could be returned when the table (or stale MV) is queried. Staleness encoded as a string encoding of [SQL IntervalValue type](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#interval_type).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#max_staleness BigqueryTable#max_staleness}
    */
    readonly maxStaleness?: string;
    /**
    * The ID of the project in which the resource belongs.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#project BigqueryTable#project}
    */
    readonly project?: string;
    /**
    * If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#require_partition_filter BigqueryTable#require_partition_filter}
    */
    readonly requirePartitionFilter?: boolean | cdktf.IResolvable;
    /**
    * The tags attached to this table. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for example "123456789012/environment" where 123456789012 is the ID of the parent organization or project resource for this tag key. Tag value is expected to be the short name, for example "Production".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#resource_tags BigqueryTable#resource_tags}
    */
    readonly resourceTags?: {
        [key: string]: string;
    };
    /**
    * A JSON schema for the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#schema BigqueryTable#schema}
    */
    readonly schema?: string;
    /**
    * A unique ID for the resource. Changing this forces a new resource to be created.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#table_id BigqueryTable#table_id}
    */
    readonly tableId: string;
    /**
    * encryption_configuration block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#encryption_configuration BigqueryTable#encryption_configuration}
    */
    readonly encryptionConfiguration?: BigqueryTableEncryptionConfiguration;
    /**
    * external_data_configuration block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#external_data_configuration BigqueryTable#external_data_configuration}
    */
    readonly externalDataConfiguration?: BigqueryTableExternalDataConfiguration;
    /**
    * materialized_view block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#materialized_view BigqueryTable#materialized_view}
    */
    readonly materializedView?: BigqueryTableMaterializedView;
    /**
    * range_partitioning block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#range_partitioning BigqueryTable#range_partitioning}
    */
    readonly rangePartitioning?: BigqueryTableRangePartitioning;
    /**
    * table_constraints block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#table_constraints BigqueryTable#table_constraints}
    */
    readonly tableConstraints?: BigqueryTableTableConstraints;
    /**
    * table_replication_info block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#table_replication_info BigqueryTable#table_replication_info}
    */
    readonly tableReplicationInfo?: BigqueryTableTableReplicationInfo;
    /**
    * time_partitioning block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#time_partitioning BigqueryTable#time_partitioning}
    */
    readonly timePartitioning?: BigqueryTableTimePartitioning;
    /**
    * view block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#view BigqueryTable#view}
    */
    readonly view?: BigqueryTableView;
}
export interface BigqueryTableEncryptionConfiguration {
    /**
    * The self link or full name of a key which should be used to encrypt this table. Note that the default bigquery service account will need to have encrypt/decrypt permissions on this key - you may want to see the google_bigquery_default_service_account datasource and the google_kms_crypto_key_iam_binding resource.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#kms_key_name BigqueryTable#kms_key_name}
    */
    readonly kmsKeyName: string;
}
export declare function bigqueryTableEncryptionConfigurationToTerraform(struct?: BigqueryTableEncryptionConfigurationOutputReference | BigqueryTableEncryptionConfiguration): any;
export declare function bigqueryTableEncryptionConfigurationToHclTerraform(struct?: BigqueryTableEncryptionConfigurationOutputReference | BigqueryTableEncryptionConfiguration): any;
export declare class BigqueryTableEncryptionConfigurationOutputReference 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(): BigqueryTableEncryptionConfiguration | undefined;
    set internalValue(value: BigqueryTableEncryptionConfiguration | undefined);
    private _kmsKeyName?;
    get kmsKeyName(): string;
    set kmsKeyName(value: string);
    get kmsKeyNameInput(): string | undefined;
    get kmsKeyVersion(): string;
}
export interface BigqueryTableExternalDataConfigurationAvroOptions {
    /**
    * If sourceFormat is set to "AVRO", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#use_avro_logical_types BigqueryTable#use_avro_logical_types}
    */
    readonly useAvroLogicalTypes: boolean | cdktf.IResolvable;
}
export declare function bigqueryTableExternalDataConfigurationAvroOptionsToTerraform(struct?: BigqueryTableExternalDataConfigurationAvroOptionsOutputReference | BigqueryTableExternalDataConfigurationAvroOptions): any;
export declare function bigqueryTableExternalDataConfigurationAvroOptionsToHclTerraform(struct?: BigqueryTableExternalDataConfigurationAvroOptionsOutputReference | BigqueryTableExternalDataConfigurationAvroOptions): any;
export declare class BigqueryTableExternalDataConfigurationAvroOptionsOutputReference 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(): BigqueryTableExternalDataConfigurationAvroOptions | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationAvroOptions | undefined);
    private _useAvroLogicalTypes?;
    get useAvroLogicalTypes(): boolean | cdktf.IResolvable;
    set useAvroLogicalTypes(value: boolean | cdktf.IResolvable);
    get useAvroLogicalTypesInput(): boolean | cdktf.IResolvable | undefined;
}
export interface BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn {
    /**
    * The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. 'encoding' can also be set at the column family level. However, the setting at this level takes precedence if 'encoding' is set at both levels.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#encoding BigqueryTable#encoding}
    */
    readonly encoding?: string;
    /**
    * If the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as the column field name and is used as field name in queries.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#field_name BigqueryTable#field_name}
    */
    readonly fieldName?: string;
    /**
    * If this is set, only the latest version of value in this column are exposed. 'onlyReadLatest' can also be set at the column family level. However, the setting at this level takes precedence if 'onlyReadLatest' is set at both levels.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#only_read_latest BigqueryTable#only_read_latest}
    */
    readonly onlyReadLatest?: boolean | cdktf.IResolvable;
    /**
    * Qualifier of the column. Columns in the parent column family that has this exact qualifier are exposed as . field. If the qualifier is valid UTF-8 string, it can be specified in the qualifierString field. Otherwise, a base-64 encoded value must be set to qualifierEncoded. The column field name is the same as the column qualifier. However, if the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as fieldName.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#qualifier_encoded BigqueryTable#qualifier_encoded}
    */
    readonly qualifierEncoded?: string;
    /**
    * Qualifier string.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#qualifier_string BigqueryTable#qualifier_string}
    */
    readonly qualifierString?: string;
    /**
    * The type to convert the value in cells of this column. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): "BYTES", "STRING", "INTEGER", "FLOAT", "BOOLEAN", "JSON", Default type is "BYTES". 'type' can also be set at the column family level. However, the setting at this level takes precedence if 'type' is set at both levels.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#type BigqueryTable#type}
    */
    readonly type?: string;
}
export declare function bigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumnToTerraform(struct?: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn | cdktf.IResolvable): any;
export declare function bigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumnToHclTerraform(struct?: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn | cdktf.IResolvable): any;
export declare class BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumnOutputReference 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(): BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn | cdktf.IResolvable | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn | cdktf.IResolvable | undefined);
    private _encoding?;
    get encoding(): string;
    set encoding(value: string);
    resetEncoding(): void;
    get encodingInput(): string | undefined;
    private _fieldName?;
    get fieldName(): string;
    set fieldName(value: string);
    resetFieldName(): void;
    get fieldNameInput(): string | undefined;
    private _onlyReadLatest?;
    get onlyReadLatest(): boolean | cdktf.IResolvable;
    set onlyReadLatest(value: boolean | cdktf.IResolvable);
    resetOnlyReadLatest(): void;
    get onlyReadLatestInput(): boolean | cdktf.IResolvable | undefined;
    private _qualifierEncoded?;
    get qualifierEncoded(): string;
    set qualifierEncoded(value: string);
    resetQualifierEncoded(): void;
    get qualifierEncodedInput(): string | undefined;
    private _qualifierString?;
    get qualifierString(): string;
    set qualifierString(value: string);
    resetQualifierString(): void;
    get qualifierStringInput(): string | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    resetType(): void;
    get typeInput(): string | undefined;
}
export declare class BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumnList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn[] | 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): BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumnOutputReference;
}
export interface BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily {
    /**
    * The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. This can be overridden for a specific column by listing that column in 'columns' and specifying an encoding for it.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#encoding BigqueryTable#encoding}
    */
    readonly encoding?: string;
    /**
    * Identifier of the column family.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#family_id BigqueryTable#family_id}
    */
    readonly familyId?: string;
    /**
    * If this is set only the latest version of value are exposed for all columns in this column family. This can be overridden for a specific column by listing that column in 'columns' and specifying a different setting for that column.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#only_read_latest BigqueryTable#only_read_latest}
    */
    readonly onlyReadLatest?: boolean | cdktf.IResolvable;
    /**
    * The type to convert the value in cells of this column family. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): "BYTES", "STRING", "INTEGER", "FLOAT", "BOOLEAN", "JSON". Default type is BYTES. This can be overridden for a specific column by listing that column in 'columns' and specifying a type for it.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#type BigqueryTable#type}
    */
    readonly type?: string;
    /**
    * column block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#column BigqueryTable#column}
    */
    readonly column?: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn[] | cdktf.IResolvable;
}
export declare function bigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyToTerraform(struct?: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily | cdktf.IResolvable): any;
export declare function bigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyToHclTerraform(struct?: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily | cdktf.IResolvable): any;
export declare class BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyOutputReference 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(): BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily | cdktf.IResolvable | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily | cdktf.IResolvable | undefined);
    private _encoding?;
    get encoding(): string;
    set encoding(value: string);
    resetEncoding(): void;
    get encodingInput(): string | undefined;
    private _familyId?;
    get familyId(): string;
    set familyId(value: string);
    resetFamilyId(): void;
    get familyIdInput(): string | undefined;
    private _onlyReadLatest?;
    get onlyReadLatest(): boolean | cdktf.IResolvable;
    set onlyReadLatest(value: boolean | cdktf.IResolvable);
    resetOnlyReadLatest(): void;
    get onlyReadLatestInput(): boolean | cdktf.IResolvable | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    resetType(): void;
    get typeInput(): string | undefined;
    private _column;
    get column(): BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumnList;
    putColumn(value: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn[] | cdktf.IResolvable): void;
    resetColumn(): void;
    get columnInput(): cdktf.IResolvable | BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyColumn[] | undefined;
}
export declare class BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily[] | 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): BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyOutputReference;
}
export interface BigqueryTableExternalDataConfigurationBigtableOptions {
    /**
    * If field is true, then the column families that are not specified in columnFamilies list are not exposed in the table schema. Otherwise, they are read with BYTES type values. The default value is false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#ignore_unspecified_column_families BigqueryTable#ignore_unspecified_column_families}
    */
    readonly ignoreUnspecifiedColumnFamilies?: boolean | cdktf.IResolvable;
    /**
    * If field is true, then each column family will be read as a single JSON column. Otherwise they are read as a repeated cell structure containing timestamp/value tuples. The default value is false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#output_column_families_as_json BigqueryTable#output_column_families_as_json}
    */
    readonly outputColumnFamiliesAsJson?: boolean | cdktf.IResolvable;
    /**
    * If field is true, then the rowkey column families will be read and converted to string. Otherwise they are read with BYTES type values and users need to manually cast them with CAST if necessary. The default value is false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#read_rowkey_as_string BigqueryTable#read_rowkey_as_string}
    */
    readonly readRowkeyAsString?: boolean | cdktf.IResolvable;
    /**
    * column_family block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#column_family BigqueryTable#column_family}
    */
    readonly columnFamily?: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily[] | cdktf.IResolvable;
}
export declare function bigqueryTableExternalDataConfigurationBigtableOptionsToTerraform(struct?: BigqueryTableExternalDataConfigurationBigtableOptionsOutputReference | BigqueryTableExternalDataConfigurationBigtableOptions): any;
export declare function bigqueryTableExternalDataConfigurationBigtableOptionsToHclTerraform(struct?: BigqueryTableExternalDataConfigurationBigtableOptionsOutputReference | BigqueryTableExternalDataConfigurationBigtableOptions): any;
export declare class BigqueryTableExternalDataConfigurationBigtableOptionsOutputReference 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(): BigqueryTableExternalDataConfigurationBigtableOptions | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationBigtableOptions | undefined);
    private _ignoreUnspecifiedColumnFamilies?;
    get ignoreUnspecifiedColumnFamilies(): boolean | cdktf.IResolvable;
    set ignoreUnspecifiedColumnFamilies(value: boolean | cdktf.IResolvable);
    resetIgnoreUnspecifiedColumnFamilies(): void;
    get ignoreUnspecifiedColumnFamiliesInput(): boolean | cdktf.IResolvable | undefined;
    private _outputColumnFamiliesAsJson?;
    get outputColumnFamiliesAsJson(): boolean | cdktf.IResolvable;
    set outputColumnFamiliesAsJson(value: boolean | cdktf.IResolvable);
    resetOutputColumnFamiliesAsJson(): void;
    get outputColumnFamiliesAsJsonInput(): boolean | cdktf.IResolvable | undefined;
    private _readRowkeyAsString?;
    get readRowkeyAsString(): boolean | cdktf.IResolvable;
    set readRowkeyAsString(value: boolean | cdktf.IResolvable);
    resetReadRowkeyAsString(): void;
    get readRowkeyAsStringInput(): boolean | cdktf.IResolvable | undefined;
    private _columnFamily;
    get columnFamily(): BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamilyList;
    putColumnFamily(value: BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily[] | cdktf.IResolvable): void;
    resetColumnFamily(): void;
    get columnFamilyInput(): cdktf.IResolvable | BigqueryTableExternalDataConfigurationBigtableOptionsColumnFamily[] | undefined;
}
export interface BigqueryTableExternalDataConfigurationCsvOptions {
    /**
    * Indicates if BigQuery should accept rows that are missing trailing optional columns.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#allow_jagged_rows BigqueryTable#allow_jagged_rows}
    */
    readonly allowJaggedRows?: boolean | cdktf.IResolvable;
    /**
    * Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#allow_quoted_newlines BigqueryTable#allow_quoted_newlines}
    */
    readonly allowQuotedNewlines?: boolean | cdktf.IResolvable;
    /**
    * The character encoding of the data. The supported values are UTF-8 or ISO-8859-1.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#encoding BigqueryTable#encoding}
    */
    readonly encoding?: string;
    /**
    * The separator for fields in a CSV file.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#field_delimiter BigqueryTable#field_delimiter}
    */
    readonly fieldDelimiter?: string;
    /**
    * The value that is used to quote data sections in a CSV file. If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allow_quoted_newlines property to true. The API-side default is ", specified in Terraform escaped as \". Due to limitations with Terraform default values, this value is required to be explicitly set.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#quote BigqueryTable#quote}
    */
    readonly quote: string;
    /**
    * The number of rows at the top of a CSV file that BigQuery will skip when reading the data.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#skip_leading_rows BigqueryTable#skip_leading_rows}
    */
    readonly skipLeadingRows?: number;
}
export declare function bigqueryTableExternalDataConfigurationCsvOptionsToTerraform(struct?: BigqueryTableExternalDataConfigurationCsvOptionsOutputReference | BigqueryTableExternalDataConfigurationCsvOptions): any;
export declare function bigqueryTableExternalDataConfigurationCsvOptionsToHclTerraform(struct?: BigqueryTableExternalDataConfigurationCsvOptionsOutputReference | BigqueryTableExternalDataConfigurationCsvOptions): any;
export declare class BigqueryTableExternalDataConfigurationCsvOptionsOutputReference 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(): BigqueryTableExternalDataConfigurationCsvOptions | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationCsvOptions | undefined);
    private _allowJaggedRows?;
    get allowJaggedRows(): boolean | cdktf.IResolvable;
    set allowJaggedRows(value: boolean | cdktf.IResolvable);
    resetAllowJaggedRows(): void;
    get allowJaggedRowsInput(): boolean | cdktf.IResolvable | undefined;
    private _allowQuotedNewlines?;
    get allowQuotedNewlines(): boolean | cdktf.IResolvable;
    set allowQuotedNewlines(value: boolean | cdktf.IResolvable);
    resetAllowQuotedNewlines(): void;
    get allowQuotedNewlinesInput(): boolean | cdktf.IResolvable | undefined;
    private _encoding?;
    get encoding(): string;
    set encoding(value: string);
    resetEncoding(): void;
    get encodingInput(): string | undefined;
    private _fieldDelimiter?;
    get fieldDelimiter(): string;
    set fieldDelimiter(value: string);
    resetFieldDelimiter(): void;
    get fieldDelimiterInput(): string | undefined;
    private _quote?;
    get quote(): string;
    set quote(value: string);
    get quoteInput(): string | undefined;
    private _skipLeadingRows?;
    get skipLeadingRows(): number;
    set skipLeadingRows(value: number);
    resetSkipLeadingRows(): void;
    get skipLeadingRowsInput(): number | undefined;
}
export interface BigqueryTableExternalDataConfigurationGoogleSheetsOptions {
    /**
    * Range of a sheet to query from. Only used when non-empty. At least one of range or skip_leading_rows must be set. Typical format: "sheet_name!top_left_cell_id:bottom_right_cell_id" For example: "sheet1!A1:B20
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#range BigqueryTable#range}
    */
    readonly range?: string;
    /**
    * The number of rows at the top of the sheet that BigQuery will skip when reading the data. At least one of range or skip_leading_rows must be set.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#skip_leading_rows BigqueryTable#skip_leading_rows}
    */
    readonly skipLeadingRows?: number;
}
export declare function bigqueryTableExternalDataConfigurationGoogleSheetsOptionsToTerraform(struct?: BigqueryTableExternalDataConfigurationGoogleSheetsOptionsOutputReference | BigqueryTableExternalDataConfigurationGoogleSheetsOptions): any;
export declare function bigqueryTableExternalDataConfigurationGoogleSheetsOptionsToHclTerraform(struct?: BigqueryTableExternalDataConfigurationGoogleSheetsOptionsOutputReference | BigqueryTableExternalDataConfigurationGoogleSheetsOptions): any;
export declare class BigqueryTableExternalDataConfigurationGoogleSheetsOptionsOutputReference 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(): BigqueryTableExternalDataConfigurationGoogleSheetsOptions | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationGoogleSheetsOptions | undefined);
    private _range?;
    get range(): string;
    set range(value: string);
    resetRange(): void;
    get rangeInput(): string | undefined;
    private _skipLeadingRows?;
    get skipLeadingRows(): number;
    set skipLeadingRows(value: number);
    resetSkipLeadingRows(): void;
    get skipLeadingRowsInput(): number | undefined;
}
export interface BigqueryTableExternalDataConfigurationHivePartitioningOptions {
    /**
    * When set, what mode of hive partitioning to use when reading data.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#mode BigqueryTable#mode}
    */
    readonly mode?: string;
    /**
    * If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#require_partition_filter BigqueryTable#require_partition_filter}
    */
    readonly requirePartitionFilter?: boolean | cdktf.IResolvable;
    /**
    * When hive partition detection is requested, a common for all source uris must be required. The prefix must end immediately before the partition key encoding begins.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#source_uri_prefix BigqueryTable#source_uri_prefix}
    */
    readonly sourceUriPrefix?: string;
}
export declare function bigqueryTableExternalDataConfigurationHivePartitioningOptionsToTerraform(struct?: BigqueryTableExternalDataConfigurationHivePartitioningOptionsOutputReference | BigqueryTableExternalDataConfigurationHivePartitioningOptions): any;
export declare function bigqueryTableExternalDataConfigurationHivePartitioningOptionsToHclTerraform(struct?: BigqueryTableExternalDataConfigurationHivePartitioningOptionsOutputReference | BigqueryTableExternalDataConfigurationHivePartitioningOptions): any;
export declare class BigqueryTableExternalDataConfigurationHivePartitioningOptionsOutputReference 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(): BigqueryTableExternalDataConfigurationHivePartitioningOptions | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationHivePartitioningOptions | undefined);
    private _mode?;
    get mode(): string;
    set mode(value: string);
    resetMode(): void;
    get modeInput(): string | undefined;
    private _requirePartitionFilter?;
    get requirePartitionFilter(): boolean | cdktf.IResolvable;
    set requirePartitionFilter(value: boolean | cdktf.IResolvable);
    resetRequirePartitionFilter(): void;
    get requirePartitionFilterInput(): boolean | cdktf.IResolvable | undefined;
    private _sourceUriPrefix?;
    get sourceUriPrefix(): string;
    set sourceUriPrefix(value: string);
    resetSourceUriPrefix(): void;
    get sourceUriPrefixInput(): string | undefined;
}
export interface BigqueryTableExternalDataConfigurationJsonOptions {
    /**
    * The character encoding of the data. The supported values are UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#encoding BigqueryTable#encoding}
    */
    readonly encoding?: string;
}
export declare function bigqueryTableExternalDataConfigurationJsonOptionsToTerraform(struct?: BigqueryTableExternalDataConfigurationJsonOptionsOutputReference | BigqueryTableExternalDataConfigurationJsonOptions): any;
export declare function bigqueryTableExternalDataConfigurationJsonOptionsToHclTerraform(struct?: BigqueryTableExternalDataConfigurationJsonOptionsOutputReference | BigqueryTableExternalDataConfigurationJsonOptions): any;
export declare class BigqueryTableExternalDataConfigurationJsonOptionsOutputReference 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(): BigqueryTableExternalDataConfigurationJsonOptions | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationJsonOptions | undefined);
    private _encoding?;
    get encoding(): string;
    set encoding(value: string);
    resetEncoding(): void;
    get encodingInput(): string | undefined;
}
export interface BigqueryTableExternalDataConfigurationParquetOptions {
    /**
    * Indicates whether to use schema inference specifically for Parquet LIST logical type.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#enable_list_inference BigqueryTable#enable_list_inference}
    */
    readonly enableListInference?: boolean | cdktf.IResolvable;
    /**
    * Indicates whether to infer Parquet ENUM logical type as STRING instead of BYTES by default.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#enum_as_string BigqueryTable#enum_as_string}
    */
    readonly enumAsString?: boolean | cdktf.IResolvable;
}
export declare function bigqueryTableExternalDataConfigurationParquetOptionsToTerraform(struct?: BigqueryTableExternalDataConfigurationParquetOptionsOutputReference | BigqueryTableExternalDataConfigurationParquetOptions): any;
export declare function bigqueryTableExternalDataConfigurationParquetOptionsToHclTerraform(struct?: BigqueryTableExternalDataConfigurationParquetOptionsOutputReference | BigqueryTableExternalDataConfigurationParquetOptions): any;
export declare class BigqueryTableExternalDataConfigurationParquetOptionsOutputReference 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(): BigqueryTableExternalDataConfigurationParquetOptions | undefined;
    set internalValue(value: BigqueryTableExternalDataConfigurationParquetOptions | undefined);
    private _enableListInference?;
    get enableListInference(): boolean | cdktf.IResolvable;
    set enableListInference(value: boolean | cdktf.IResolvable);
    resetEnableListInference(): void;
    get enableListInferenceInput(): boolean | cdktf.IResolvable | undefined;
    private _enumAsString?;
    get enumAsString(): boolean | cdktf.IResolvable;
    set enumAsString(value: boolean | cdktf.IResolvable);
    resetEnumAsString(): void;
    get enumAsStringInput(): boolean | cdktf.IResolvable | undefined;
}
export interface BigqueryTableExternalDataConfiguration {
    /**
    * Let BigQuery try to autodetect the schema and format of the table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#autodetect BigqueryTable#autodetect}
    */
    readonly autodetect: boolean | cdktf.IResolvable;
    /**
    * The compression type of the data source. Valid values are "NONE" or "GZIP".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#compression BigqueryTable#compression}
    */
    readonly compression?: string;
    /**
    * The connection specifying the credentials to be used to read external storage, such as Azure Blob, Cloud Storage, or S3. The connectionId can have the form "{{project}}.{{location}}.{{connection_id}}" or "projects/{{project}}/locations/{{location}}/connections/{{connection_id}}".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#connection_id BigqueryTable#connection_id}
    */
    readonly connectionId?: string;
    /**
    * Specifies how source URIs are interpreted for constructing the file set to load.  By default source URIs are expanded against the underlying storage.  Other options include specifying manifest files. Only applicable to object storage systems.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#file_set_spec_type BigqueryTable#file_set_spec_type}
    */
    readonly fileSetSpecType?: string;
    /**
    * Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#ignore_unknown_values BigqueryTable#ignore_unknown_values}
    */
    readonly ignoreUnknownValues?: boolean | cdktf.IResolvable;
    /**
    * Load option to be used together with sourceFormat newline-delimited JSON to indicate that a variant of JSON is being loaded. To load newline-delimited GeoJSON, specify GEOJSON (and sourceFormat must be set to NEWLINE_DELIMITED_JSON).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#json_extension BigqueryTable#json_extension}
    */
    readonly jsonExtension?: string;
    /**
    * The maximum number of bad records that BigQuery can ignore when reading data.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#max_bad_records BigqueryTable#max_bad_records}
    */
    readonly maxBadRecords?: number;
    /**
    * Metadata Cache Mode for the table. Set this to enable caching of metadata from external data source.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#metadata_cache_mode BigqueryTable#metadata_cache_mode}
    */
    readonly metadataCacheMode?: string;
    /**
    * Object Metadata is used to create Object Tables. Object Tables contain a listing of objects (with their metadata) found at the sourceUris. If ObjectMetadata is set, sourceFormat should be omitted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#object_metadata BigqueryTable#object_metadata}
    */
    readonly objectMetadata?: string;
    /**
    * When creating an external table, the user can provide a reference file with the table schema. This is enabled for the following formats: AVRO, PARQUET, ORC.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#reference_file_schema_uri BigqueryTable#reference_file_schema_uri}
    */
    readonly referenceFileSchemaUri?: string;
    /**
    * A JSON schema for the external table. Schema is required for CSV and JSON formats and is disallowed for Google Cloud Bigtable, Cloud Datastore backups, and Avro formats when using external tables.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#schema BigqueryTable#schema}
    */
    readonly schema?: string;
    /**
    * Please see sourceFormat under ExternalDataConfiguration in Bigquery's public API documentation (https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#externaldataconfiguration) for supported formats. To use "GOOGLE_SHEETS" the scopes must include "googleapis.com/auth/drive.readonly".
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#source_format BigqueryTable#source_format}
    */
    readonly sourceFormat?: string;
    /**
    * A list of the fully-qualified URIs that point to your data in Google Cloud.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#source_uris BigqueryTable#source_uris}
    */
    readonly sourceUris: string[];
    /**
    * avro_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#avro_options BigqueryTable#avro_options}
    */
    readonly avroOptions?: BigqueryTableExternalDataConfigurationAvroOptions;
    /**
    * bigtable_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#bigtable_options BigqueryTable#bigtable_options}
    */
    readonly bigtableOptions?: BigqueryTableExternalDataConfigurationBigtableOptions;
    /**
    * csv_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#csv_options BigqueryTable#csv_options}
    */
    readonly csvOptions?: BigqueryTableExternalDataConfigurationCsvOptions;
    /**
    * google_sheets_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#google_sheets_options BigqueryTable#google_sheets_options}
    */
    readonly googleSheetsOptions?: BigqueryTableExternalDataConfigurationGoogleSheetsOptions;
    /**
    * hive_partitioning_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#hive_partitioning_options BigqueryTable#hive_partitioning_options}
    */
    readonly hivePartitioningOptions?: BigqueryTableExternalDataConfigurationHivePartitioningOptions;
    /**
    * json_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#json_options BigqueryTable#json_options}
    */
    readonly jsonOptions?: BigqueryTableExternalDataConfigurationJsonOptions;
    /**
    * parquet_options block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#parquet_options BigqueryTable#parquet_options}
    */
    readonly parquetOptions?: BigqueryTableExternalDataConfigurationParquetOptions;
}
export declare function bigqueryTableExternalDataConfigurationToTerraform(struct?: BigqueryTableExternalDataConfigurationOutputReference | BigqueryTableExternalDataConfiguration): any;
export declare function bigqueryTableExternalDataConfigurationToHclTerraform(struct?: BigqueryTableExternalDataConfigurationOutputReference | BigqueryTableExternalDataConfiguration): any;
export declare class BigqueryTableExternalDataConfigurationOutputReference 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(): BigqueryTableExternalDataConfiguration | undefined;
    set internalValue(value: BigqueryTableExternalDataConfiguration | undefined);
    private _autodetect?;
    get autodetect(): boolean | cdktf.IResolvable;
    set autodetect(value: boolean | cdktf.IResolvable);
    get autodetectInput(): boolean | cdktf.IResolvable | undefined;
    private _compression?;
    get compression(): string;
    set compression(value: string);
    resetCompression(): void;
    get compressionInput(): string | undefined;
    private _connectionId?;
    get connectionId(): string;
    set connectionId(value: string);
    resetConnectionId(): void;
    get connectionIdInput(): string | undefined;
    private _fileSetSpecType?;
    get fileSetSpecType(): string;
    set fileSetSpecType(value: string);
    resetFileSetSpecType(): void;
    get fileSetSpecTypeInput(): string | undefined;
    private _ignoreUnknownValues?;
    get ignoreUnknownValues(): boolean | cdktf.IResolvable;
    set ignoreUnknownValues(value: boolean | cdktf.IResolvable);
    resetIgnoreUnknownValues(): void;
    get ignoreUnknownValuesInput(): boolean | cdktf.IResolvable | undefined;
    private _jsonExtension?;
    get jsonExtension(): string;
    set jsonExtension(value: string);
    resetJsonExtension(): void;
    get jsonExtensionInput(): string | undefined;
    private _maxBadRecords?;
    get maxBadRecords(): number;
    set maxBadRecords(value: number);
    resetMaxBadRecords(): void;
    get maxBadRecordsInput(): number | undefined;
    private _metadataCacheMode?;
    get metadataCacheMode(): string;
    set metadataCacheMode(value: string);
    resetMetadataCacheMode(): void;
    get metadataCacheModeInput(): string | undefined;
    private _objectMetadata?;
    get objectMetadata(): string;
    set objectMetadata(value: string);
    resetObjectMetadata(): void;
    get objectMetadataInput(): string | undefined;
    private _referenceFileSchemaUri?;
    get referenceFileSchemaUri(): string;
    set referenceFileSchemaUri(value: string);
    resetReferenceFileSchemaUri(): void;
    get referenceFileSchemaUriInput(): string | undefined;
    private _schema?;
    get schema(): string;
    set schema(value: string);
    resetSchema(): void;
    get schemaInput(): string | undefined;
    private _sourceFormat?;
    get sourceFormat(): string;
    set sourceFormat(value: string);
    resetSourceFormat(): void;
    get sourceFormatInput(): string | undefined;
    private _sourceUris?;
    get sourceUris(): string[];
    set sourceUris(value: string[]);
    get sourceUrisInput(): string[] | undefined;
    private _avroOptions;
    get avroOptions(): BigqueryTableExternalDataConfigurationAvroOptionsOutputReference;
    putAvroOptions(value: BigqueryTableExternalDataConfigurationAvroOptions): void;
    resetAvroOptions(): void;
    get avroOptionsInput(): BigqueryTableExternalDataConfigurationAvroOptions | undefined;
    private _bigtableOptions;
    get bigtableOptions(): BigqueryTableExternalDataConfigurationBigtableOptionsOutputReference;
    putBigtableOptions(value: BigqueryTableExternalDataConfigurationBigtableOptions): void;
    resetBigtableOptions(): void;
    get bigtableOptionsInput(): BigqueryTableExternalDataConfigurationBigtableOptions | undefined;
    private _csvOptions;
    get csvOptions(): BigqueryTableExternalDataConfigurationCsvOptionsOutputReference;
    putCsvOptions(value: BigqueryTableExternalDataConfigurationCsvOptions): void;
    resetCsvOptions(): void;
    get csvOptionsInput(): BigqueryTableExternalDataConfigurationCsvOptions | undefined;
    private _googleSheetsOptions;
    get googleSheetsOptions(): BigqueryTableExternalDataConfigurationGoogleSheetsOptionsOutputReference;
    putGoogleSheetsOptions(value: BigqueryTableExternalDataConfigurationGoogleSheetsOptions): void;
    resetGoogleSheetsOptions(): void;
    get googleSheetsOptionsInput(): BigqueryTableExternalDataConfigurationGoogleSheetsOptions | undefined;
    private _hivePartitioningOptions;
    get hivePartitioningOptions(): BigqueryTableExternalDataConfigurationHivePartitioningOptionsOutputReference;
    putHivePartitioningOptions(value: BigqueryTableExternalDataConfigurationHivePartitioningOptions): void;
    resetHivePartitioningOptions(): void;
    get hivePartitioningOptionsInput(): BigqueryTableExternalDataConfigurationHivePartitioningOptions | undefined;
    private _jsonOptions;
    get jsonOptions(): BigqueryTableExternalDataConfigurationJsonOptionsOutputReference;
    putJsonOptions(value: BigqueryTableExternalDataConfigurationJsonOptions): void;
    resetJsonOptions(): void;
    get jsonOptionsInput(): BigqueryTableExternalDataConfigurationJsonOptions | undefined;
    private _parquetOptions;
    get parquetOptions(): BigqueryTableExternalDataConfigurationParquetOptionsOutputReference;
    putParquetOptions(value: BigqueryTableExternalDataConfigurationParquetOptions): void;
    resetParquetOptions(): void;
    get parquetOptionsInput(): BigqueryTableExternalDataConfigurationParquetOptions | undefined;
}
export interface BigqueryTableMaterializedView {
    /**
    * Allow non incremental materialized view definition. The default value is false.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#allow_non_incremental_definition BigqueryTable#allow_non_incremental_definition}
    */
    readonly allowNonIncrementalDefinition?: boolean | cdktf.IResolvable;
    /**
    * Specifies if BigQuery should automatically refresh materialized view when the base table is updated. The default is true.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#enable_refresh BigqueryTable#enable_refresh}
    */
    readonly enableRefresh?: boolean | cdktf.IResolvable;
    /**
    * A query whose result is persisted.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#query BigqueryTable#query}
    */
    readonly query: string;
    /**
    * Specifies maximum frequency at which this materialized view will be refreshed. The default is 1800000.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#refresh_interval_ms BigqueryTable#refresh_interval_ms}
    */
    readonly refreshIntervalMs?: number;
}
export declare function bigqueryTableMaterializedViewToTerraform(struct?: BigqueryTableMaterializedViewOutputReference | BigqueryTableMaterializedView): any;
export declare function bigqueryTableMaterializedViewToHclTerraform(struct?: BigqueryTableMaterializedViewOutputReference | BigqueryTableMaterializedView): any;
export declare class BigqueryTableMaterializedViewOutputReference 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(): BigqueryTableMaterializedView | undefined;
    set internalValue(value: BigqueryTableMaterializedView | undefined);
    private _allowNonIncrementalDefinition?;
    get allowNonIncrementalDefinition(): boolean | cdktf.IResolvable;
    set allowNonIncrementalDefinition(value: boolean | cdktf.IResolvable);
    resetAllowNonIncrementalDefinition(): void;
    get allowNonIncrementalDefinitionInput(): boolean | cdktf.IResolvable | undefined;
    private _enableRefresh?;
    get enableRefresh(): boolean | cdktf.IResolvable;
    set enableRefresh(value: boolean | cdktf.IResolvable);
    resetEnableRefresh(): void;
    get enableRefreshInput(): boolean | cdktf.IResolvable | undefined;
    private _query?;
    get query(): string;
    set query(value: string);
    get queryInput(): string | undefined;
    private _refreshIntervalMs?;
    get refreshIntervalMs(): number;
    set refreshIntervalMs(value: number);
    resetRefreshIntervalMs(): void;
    get refreshIntervalMsInput(): number | undefined;
}
export interface BigqueryTableRangePartitioningRange {
    /**
    * End of the range partitioning, exclusive.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#end BigqueryTable#end}
    */
    readonly end: number;
    /**
    * The width of each range within the partition.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#interval BigqueryTable#interval}
    */
    readonly interval: number;
    /**
    * Start of the range partitioning, inclusive.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#start BigqueryTable#start}
    */
    readonly start: number;
}
export declare function bigqueryTableRangePartitioningRangeToTerraform(struct?: BigqueryTableRangePartitioningRangeOutputReference | BigqueryTableRangePartitioningRange): any;
export declare function bigqueryTableRangePartitioningRangeToHclTerraform(struct?: BigqueryTableRangePartitioningRangeOutputReference | BigqueryTableRangePartitioningRange): any;
export declare class BigqueryTableRangePartitioningRangeOutputReference 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(): BigqueryTableRangePartitioningRange | undefined;
    set internalValue(value: BigqueryTableRangePartitioningRange | undefined);
    private _end?;
    get end(): number;
    set end(value: number);
    get endInput(): number | undefined;
    private _interval?;
    get interval(): number;
    set interval(value: number);
    get intervalInput(): number | undefined;
    private _start?;
    get start(): number;
    set start(value: number);
    get startInput(): number | undefined;
}
export interface BigqueryTableRangePartitioning {
    /**
    * The field used to determine how to create a range-based partition.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#field BigqueryTable#field}
    */
    readonly field: string;
    /**
    * range block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#range BigqueryTable#range}
    */
    readonly range: BigqueryTableRangePartitioningRange;
}
export declare function bigqueryTableRangePartitioningToTerraform(struct?: BigqueryTableRangePartitioningOutputReference | BigqueryTableRangePartitioning): any;
export declare function bigqueryTableRangePartitioningToHclTerraform(struct?: BigqueryTableRangePartitioningOutputReference | BigqueryTableRangePartitioning): any;
export declare class BigqueryTableRangePartitioningOutputReference 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(): BigqueryTableRangePartitioning | undefined;
    set internalValue(value: BigqueryTableRangePartitioning | undefined);
    private _field?;
    get field(): string;
    set field(value: string);
    get fieldInput(): string | undefined;
    private _range;
    get range(): BigqueryTableRangePartitioningRangeOutputReference;
    putRange(value: BigqueryTableRangePartitioningRange): void;
    get rangeInput(): BigqueryTableRangePartitioningRange | undefined;
}
export interface BigqueryTableTableConstraintsForeignKeysColumnReferences {
    /**
    * The column in the primary key that are referenced by the referencingColumn.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#referenced_column BigqueryTable#referenced_column}
    */
    readonly referencedColumn: string;
    /**
    * The column that composes the foreign key.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#referencing_column BigqueryTable#referencing_column}
    */
    readonly referencingColumn: string;
}
export declare function bigqueryTableTableConstraintsForeignKeysColumnReferencesToTerraform(struct?: BigqueryTableTableConstraintsForeignKeysColumnReferencesOutputReference | BigqueryTableTableConstraintsForeignKeysColumnReferences): any;
export declare function bigqueryTableTableConstraintsForeignKeysColumnReferencesToHclTerraform(struct?: BigqueryTableTableConstraintsForeignKeysColumnReferencesOutputReference | BigqueryTableTableConstraintsForeignKeysColumnReferences): any;
export declare class BigqueryTableTableConstraintsForeignKeysColumnReferencesOutputReference 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(): BigqueryTableTableConstraintsForeignKeysColumnReferences | undefined;
    set internalValue(value: BigqueryTableTableConstraintsForeignKeysColumnReferences | undefined);
    private _referencedColumn?;
    get referencedColumn(): string;
    set referencedColumn(value: string);
    get referencedColumnInput(): string | undefined;
    private _referencingColumn?;
    get referencingColumn(): string;
    set referencingColumn(value: string);
    get referencingColumnInput(): string | undefined;
}
export interface BigqueryTableTableConstraintsForeignKeysReferencedTable {
    /**
    * The ID of the dataset containing this table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#dataset_id BigqueryTable#dataset_id}
    */
    readonly datasetId: string;
    /**
    * The ID of the project containing this table.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#project_id BigqueryTable#project_id}
    */
    readonly projectId: string;
    /**
    * The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters. Certain operations allow suffixing of the table ID with a partition decorator, such as sample_table$20190123.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#table_id BigqueryTable#table_id}
    */
    readonly tableId: string;
}
export declare function bigqueryTableTableConstraintsForeignKeysReferencedTableToTerraform(struct?: BigqueryTableTableConstraintsForeignKeysReferencedTableOutputReference | BigqueryTableTableConstraintsForeignKeysReferencedTable): any;
export declare function bigqueryTableTableConstraintsForeignKeysReferencedTableToHclTerraform(struct?: BigqueryTableTableConstraintsForeignKeysReferencedTableOutputReference | BigqueryTableTableConstraintsForeignKeysReferencedTable): any;
export declare class BigqueryTableTableConstraintsForeignKeysReferencedTableOutputReference 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(): BigqueryTableTableConstraintsForeignKeysReferencedTable | undefined;
    set internalValue(value: BigqueryTableTableConstraintsForeignKeysReferencedTable | undefined);
    private _datasetId?;
    get datasetId(): string;
    set datasetId(value: string);
    get datasetIdInput(): string | undefined;
    private _projectId?;
    get projectId(): string;
    set projectId(value: string);
    get projectIdInput(): string | undefined;
    private _tableId?;
    get tableId(): string;
    set tableId(value: string);
    get tableIdInput(): string | undefined;
}
export interface BigqueryTableTableConstraintsForeignKeys {
    /**
    * Set only if the foreign key constraint is named.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#name BigqueryTable#name}
    */
    readonly name?: string;
    /**
    * column_references block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#column_references BigqueryTable#column_references}
    */
    readonly columnReferences: BigqueryTableTableConstraintsForeignKeysColumnReferences;
    /**
    * referenced_table block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#referenced_table BigqueryTable#referenced_table}
    */
    readonly referencedTable: BigqueryTableTableConstraintsForeignKeysReferencedTable;
}
export declare function bigqueryTableTableConstraintsForeignKeysToTerraform(struct?: BigqueryTableTableConstraintsForeignKeys | cdktf.IResolvable): any;
export declare function bigqueryTableTableConstraintsForeignKeysToHclTerraform(struct?: BigqueryTableTableConstraintsForeignKeys | cdktf.IResolvable): any;
export declare class BigqueryTableTableConstraintsForeignKeysOutputReference 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(): BigqueryTableTableConstraintsForeignKeys | cdktf.IResolvable | undefined;
    set internalValue(value: BigqueryTableTableConstraintsForeignKeys | cdktf.IResolvable | undefined);
    private _name?;
    get name(): string;
    set name(value: string);
    resetName(): void;
    get nameInput(): string | undefined;
    private _columnReferences;
    get columnReferences(): BigqueryTableTableConstraintsForeignKeysColumnReferencesOutputReference;
    putColumnReferences(value: BigqueryTableTableConstraintsForeignKeysColumnReferences): void;
    get columnReferencesInput(): BigqueryTableTableConstraintsForeignKeysColumnReferences | undefined;
    private _referencedTable;
    get referencedTable(): BigqueryTableTableConstraintsForeignKeysReferencedTableOutputReference;
    putReferencedTable(value: BigqueryTableTableConstraintsForeignKeysReferencedTable): void;
    get referencedTableInput(): BigqueryTableTableConstraintsForeignKeysReferencedTable | undefined;
}
export declare class BigqueryTableTableConstraintsForeignKeysList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: BigqueryTableTableConstraintsForeignKeys[] | 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): BigqueryTableTableConstraintsForeignKeysOutputReference;
}
export interface BigqueryTableTableConstraintsPrimaryKey {
    /**
    * The columns that are composed of the primary key constraint.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#columns BigqueryTable#columns}
    */
    readonly columns: string[];
}
export declare function bigqueryTableTableConstraintsPrimaryKeyToTerraform(struct?: BigqueryTableTableConstraintsPrimaryKeyOutputReference | BigqueryTableTableConstraintsPrimaryKey): any;
export declare function bigqueryTableTableConstraintsPrimaryKeyToHclTerraform(struct?: BigqueryTableTableConstraintsPrimaryKeyOutputReference | BigqueryTableTableConstraintsPrimaryKey): any;
export declare class BigqueryTableTableConstraintsPrimaryKeyOutputReference 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(): BigqueryTableTableConstraintsPrimaryKey | undefined;
    set internalValue(value: BigqueryTableTableConstraintsPrimaryKey | undefined);
    private _columns?;
    get columns(): string[];
    set columns(value: string[]);
    get columnsInput(): string[] | undefined;
}
export interface BigqueryTableTableConstraints {
    /**
    * foreign_keys block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#foreign_keys BigqueryTable#foreign_keys}
    */
    readonly foreignKeys?: BigqueryTableTableConstraintsForeignKeys[] | cdktf.IResolvable;
    /**
    * primary_key block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#primary_key BigqueryTable#primary_key}
    */
    readonly primaryKey?: BigqueryTableTableConstraintsPrimaryKey;
}
export declare function bigqueryTableTableConstraintsToTerraform(struct?: BigqueryTableTableConstraintsOutputReference | BigqueryTableTableConstraints): any;
export declare function bigqueryTableTableConstraintsToHclTerraform(struct?: BigqueryTableTableConstraintsOutputReference | BigqueryTableTableConstraints): any;
export declare class BigqueryTableTableConstraintsOutputReference 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(): BigqueryTableTableConstraints | undefined;
    set internalValue(value: BigqueryTableTableConstraints | undefined);
    private _foreignKeys;
    get foreignKeys(): BigqueryTableTableConstraintsForeignKeysList;
    putForeignKeys(value: BigqueryTableTableConstraintsForeignKeys[] | cdktf.IResolvable): void;
    resetForeignKeys(): void;
    get foreignKeysInput(): cdktf.IResolvable | BigqueryTableTableConstraintsForeignKeys[] | undefined;
    private _primaryKey;
    get primaryKey(): BigqueryTableTableConstraintsPrimaryKeyOutputReference;
    putPrimaryKey(value: BigqueryTableTableConstraintsPrimaryKey): void;
    resetPrimaryKey(): void;
    get primaryKeyInput(): BigqueryTableTableConstraintsPrimaryKey | undefined;
}
export interface BigqueryTableTableReplicationInfo {
    /**
    * The interval at which the source materialized view is polled for updates. The default is 300000.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#replication_interval_ms BigqueryTable#replication_interval_ms}
    */
    readonly replicationIntervalMs?: number;
    /**
    * The ID of the source dataset.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#source_dataset_id BigqueryTable#source_dataset_id}
    */
    readonly sourceDatasetId: string;
    /**
    * The ID of the source project.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#source_project_id BigqueryTable#source_project_id}
    */
    readonly sourceProjectId: string;
    /**
    * The ID of the source materialized view.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#source_table_id BigqueryTable#source_table_id}
    */
    readonly sourceTableId: string;
}
export declare function bigqueryTableTableReplicationInfoToTerraform(struct?: BigqueryTableTableReplicationInfoOutputReference | BigqueryTableTableReplicationInfo): any;
export declare function bigqueryTableTableReplicationInfoToHclTerraform(struct?: BigqueryTableTableReplicationInfoOutputReference | BigqueryTableTableReplicationInfo): any;
export declare class BigqueryTableTableReplicationInfoOutputReference 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(): BigqueryTableTableReplicationInfo | undefined;
    set internalValue(value: BigqueryTableTableReplicationInfo | undefined);
    private _replicationIntervalMs?;
    get replicationIntervalMs(): number;
    set replicationIntervalMs(value: number);
    resetReplicationIntervalMs(): void;
    get replicationIntervalMsInput(): number | undefined;
    private _sourceDatasetId?;
    get sourceDatasetId(): string;
    set sourceDatasetId(value: string);
    get sourceDatasetIdInput(): string | undefined;
    private _sourceProjectId?;
    get sourceProjectId(): string;
    set sourceProjectId(value: string);
    get sourceProjectIdInput(): string | undefined;
    private _sourceTableId?;
    get sourceTableId(): string;
    set sourceTableId(value: string);
    get sourceTableIdInput(): string | undefined;
}
export interface BigqueryTableTimePartitioning {
    /**
    * Number of milliseconds for which to keep the storage for a partition.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#expiration_ms BigqueryTable#expiration_ms}
    */
    readonly expirationMs?: number;
    /**
    * The field used to determine how to create a time-based partition. If time-based partitioning is enabled without this value, the table is partitioned based on the load time.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#field BigqueryTable#field}
    */
    readonly field?: string;
    /**
    * If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#require_partition_filter BigqueryTable#require_partition_filter}
    */
    readonly requirePartitionFilter?: boolean | cdktf.IResolvable;
    /**
    * The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one partition per day, hour, month, and year, respectively.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#type BigqueryTable#type}
    */
    readonly type: string;
}
export declare function bigqueryTableTimePartitioningToTerraform(struct?: BigqueryTableTimePartitioningOutputReference | BigqueryTableTimePartitioning): any;
export declare function bigqueryTableTimePartitioningToHclTerraform(struct?: BigqueryTableTimePartitioningOutputReference | BigqueryTableTimePartitioning): any;
export declare class BigqueryTableTimePartitioningOutputReference 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(): BigqueryTableTimePartitioning | undefined;
    set internalValue(value: BigqueryTableTimePartitioning | undefined);
    private _expirationMs?;
    get expirationMs(): number;
    set expirationMs(value: number);
    resetExpirationMs(): void;
    get expirationMsInput(): number | undefined;
    private _field?;
    get field(): string;
    set field(value: string);
    resetField(): void;
    get fieldInput(): string | undefined;
    private _requirePartitionFilter?;
    get requirePartitionFilter(): boolean | cdktf.IResolvable;
    set requirePartitionFilter(value: boolean | cdktf.IResolvable);
    resetRequirePartitionFilter(): void;
    get requirePartitionFilterInput(): boolean | cdktf.IResolvable | undefined;
    private _type?;
    get type(): string;
    set type(value: string);
    get typeInput(): string | undefined;
}
export interface BigqueryTableView {
    /**
    * A query that BigQuery executes when the view is referenced.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#query BigqueryTable#query}
    */
    readonly query: string;
    /**
    * Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#use_legacy_sql BigqueryTable#use_legacy_sql}
    */
    readonly useLegacySql?: boolean | cdktf.IResolvable;
}
export declare function bigqueryTableViewToTerraform(struct?: BigqueryTableViewOutputReference | BigqueryTableView): any;
export declare function bigqueryTableViewToHclTerraform(struct?: BigqueryTableViewOutputReference | BigqueryTableView): any;
export declare class BigqueryTableViewOutputReference 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(): BigqueryTableView | undefined;
    set internalValue(value: BigqueryTableView | undefined);
    private _query?;
    get query(): string;
    set query(value: string);
    get queryInput(): string | undefined;
    private _useLegacySql?;
    get useLegacySql(): boolean | cdktf.IResolvable;
    set useLegacySql(value: boolean | cdktf.IResolvable);
    resetUseLegacySql(): void;
    get useLegacySqlInput(): boolean | cdktf.IResolvable | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table google_bigquery_table}
*/
export declare class BigqueryTable extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_bigquery_table";
    /**
    * Generates CDKTF code for importing a BigqueryTable 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 BigqueryTable to import
    * @param importFromId The id of the existing BigqueryTable that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/5.43.0/docs/resources/bigquery_table#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the BigqueryTable 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/5.43.0/docs/resources/bigquery_table google_bigquery_table} 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 BigqueryTableConfig
    */
    constructor(scope: Construct, id: string, config: BigqueryTableConfig);
    private _allowResourceTagsOnDeletion?;
    get allowResourceTagsOnDeletion(): boolean | cdktf.IResolvable;
    set allowResourceTagsOnDeletion(value: boolean | cdktf.IResolvable);
    resetAllowResourceTagsOnDeletion(): void;
    get allowResourceTagsOnDeletionInput(): boolean | cdktf.IResolvable | undefined;
    private _clustering?;
    get clustering(): string[];
    set clustering(value: string[]);
    resetClustering(): void;
    get clusteringInput(): string[] | undefined;
    get creationTime(): number;
    private _datasetId?;
    get datasetId(): string;
    set datasetId(value: string);
    get datasetIdInput(): string | undefined;
    private _deletionProtection?;
    get deletionProtection(): boolean | cdktf.IResolvable;
    set deletionProtection(value: boolean | cdktf.IResolvable);
    resetDeletionProtection(): void;
    get deletionProtectionInput(): boolean | cdktf.IResolvable | undefined;
    private _description?;
    get description(): string;
    set description(value: string);
    resetDescription(): void;
    get descriptionInput(): string | undefined;
    private _effectiveLabels;
    get effectiveLabels(): cdktf.StringMap;
    get etag(): string;
    private _expirationTime?;
    get expirationTime(): number;
    set expirationTime(value: number);
    resetExpirationTime(): void;
    get expirationTimeInput(): number | undefined;
    private _friendlyName?;
    get friendlyName(): string;
    set friendlyName(value: string);
    resetFriendlyName(): void;
    get friendlyNameInput(): string | undefined;
    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;
    get lastModifiedTime(): number;
    get location(): string;
    private _maxStaleness?;
    get maxStaleness(): string;
    set maxStaleness(value: string);
    resetMaxStaleness(): void;
    get maxStalenessInput(): string | undefined;
    get numBytes(): number;
    get numLongTermBytes(): number;
    get numRows(): number;
    private _project?;
    get project(): string;
    set project(value: string);
    resetProject(): void;
    get projectInput(): string | undefined;
    private _requirePartitionFilter?;
    get requirePartitionFilter(): boolean | cdktf.IResolvable;
    set requirePartitionFilter(value: boolean | cdktf.IResolvable);
    resetRequirePartitionFilter(): void;
    get requirePartitionFilterInput(): boolean | cdktf.IResolvable | undefined;
    private _resourceTags?;
    get resourceTags(): {
        [key: string]: string;
    };
    set resourceTags(value: {
        [key: string]: string;
    });
    resetResourceTags(): void;
    get resourceTagsInput(): {
        [key: string]: string;
    } | undefined;
    private _schema?;
    get schema(): string;
    set schema(value: string);
    resetSchema(): void;
    get schemaInput(): string | undefined;
    get selfLink(): string;
    private _tableId?;
    get tableId(): string;
    set tableId(value: string);
    get tableIdInput(): string | undefined;
    private _terraformLabels;
    get terraformLabels(): cdktf.StringMap;
    get type(): string;
    private _encryptionConfiguration;
    get encryptionConfiguration(): BigqueryTableEncryptionConfigurationOutputReference;
    putEncryptionConfiguration(value: BigqueryTableEncryptionConfiguration): void;
    resetEncryptionConfiguration(): void;
    get encryptionConfigurationInput(): BigqueryTableEncryptionConfiguration | undefined;
    private _externalDataConfiguration;
    get externalDataConfiguration(): BigqueryTableExternalDataConfigurationOutputReference;
    putExternalDataConfiguration(value: BigqueryTableExternalDataConfiguration): void;
    resetExternalDataConfiguration(): void;
    get externalDataConfigurationInput(): BigqueryTableExternalDataConfiguration | undefined;
    private _materializedView;
    get materializedView(): BigqueryTableMaterializedViewOutputReference;
    putMaterializedView(value: BigqueryTableMaterializedView): void;
    resetMaterializedView(): void;
    get materializedViewInput(): BigqueryTableMaterializedView | undefined;
    private _rangePartitioning;
    get rangePartitioning(): BigqueryTableRangePartitioningOutputReference;
    putRangePartitioning(value: BigqueryTableRangePartitioning): void;
    resetRangePartitioning(): void;
    get rangePartitioningInput(): BigqueryTableRangePartitioning | undefined;
    private _tableConstraints;
    get tableConstraints(): BigqueryTableTableConstraintsOutputReference;
    putTableConstraints(value: BigqueryTableTableConstraints): void;
    resetTableConstraints(): void;
    get tableConstraintsInput(): BigqueryTableTableConstraints | undefined;
    private _tableReplicationInfo;
    get tableReplicationInfo(): BigqueryTableTableReplicationInfoOutputReference;
    putTableReplicationInfo(value: BigqueryTableTableReplicationInfo): void;
    resetTableReplicationInfo(): void;
    get tableReplicationInfoInput(): BigqueryTableTableReplicationInfo | undefined;
    private _timePartitioning;
    get timePartitioning(): BigqueryTableTimePartitioningOutputReference;
    putTimePartitioning(value: BigqueryTableTimePartitioning): void;
    resetTimePartitioning(): void;
    get timePartitioningInput(): BigqueryTableTimePartitioning | undefined;
    private _view;
    get view(): BigqueryTableViewOutputReference;
    putView(value: BigqueryTableView): void;
    resetView(): void;
    get viewInput(): BigqueryTableView | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
