/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface FirebaseAppHostingDomainConfig extends cdktf.TerraformMetaArguments {
    /**
    * The ID of the Backend that this Domain is associated with
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#backend FirebaseAppHostingDomain#backend}
    */
    readonly backend: string;
    /**
    * Id of the domain to create.
    * Must be a valid domain name, such as "foo.com"
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#domain_id FirebaseAppHostingDomain#domain_id}
    */
    readonly domainId: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#id FirebaseAppHostingDomain#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;
    /**
    * The location of the Backend that this Domain is associated with
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#location FirebaseAppHostingDomain#location}
    */
    readonly location: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#project FirebaseAppHostingDomain#project}
    */
    readonly project?: string;
    /**
    * serve block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#serve FirebaseAppHostingDomain#serve}
    */
    readonly serve?: FirebaseAppHostingDomainServe;
    /**
    * timeouts block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#timeouts FirebaseAppHostingDomain#timeouts}
    */
    readonly timeouts?: FirebaseAppHostingDomainTimeouts;
}
export interface FirebaseAppHostingDomainCustomDomainStatusIssues {
}
export declare function firebaseAppHostingDomainCustomDomainStatusIssuesToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusIssues): any;
export declare function firebaseAppHostingDomainCustomDomainStatusIssuesToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusIssues): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusIssuesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatusIssues | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatusIssues | undefined);
    get code(): number;
    get details(): string;
    get message(): string;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusIssuesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusIssuesOutputReference;
}
export interface FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckError {
}
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckErrorToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckError): any;
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckErrorToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckError): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckErrorOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckError | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckError | undefined);
    get code(): number;
    get details(): string;
    get message(): string;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckErrorList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckErrorOutputReference;
}
export interface FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecords {
}
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecordsToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecords): any;
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecordsToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecords): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecordsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecords | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecords | undefined);
    get domainName(): string;
    get rdata(): string;
    get relevantState(): string[];
    get requiredAction(): string;
    get type(): string;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecordsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecordsOutputReference;
}
export interface FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesired {
}
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesired): any;
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesired): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesired | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesired | undefined);
    private _checkError;
    get checkError(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredCheckErrorList;
    get domainName(): string;
    private _records;
    get records(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredRecordsList;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredOutputReference;
}
export interface FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckError {
}
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckErrorToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckError): any;
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckErrorToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckError): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckErrorOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckError | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckError | undefined);
    get code(): number;
    get details(): string;
    get message(): string;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckErrorList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckErrorOutputReference;
}
export interface FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecords {
}
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecordsToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecords): any;
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecordsToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecords): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecordsOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecords | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecords | undefined);
    get domainName(): string;
    get rdata(): string;
    get relevantState(): string[];
    get requiredAction(): string;
    get type(): string;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecordsList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecordsOutputReference;
}
export interface FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscovered {
}
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscovered): any;
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscovered): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscovered | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscovered | undefined);
    private _checkError;
    get checkError(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredCheckErrorList;
    get domainName(): string;
    private _records;
    get records(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredRecordsList;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredOutputReference;
}
export interface FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdates {
}
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdates): any;
export declare function firebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdates): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdates | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdates | undefined);
    get checkTime(): string;
    private _desired;
    get desired(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDesiredList;
    private _discovered;
    get discovered(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesDiscoveredList;
    get domainName(): string;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesOutputReference;
}
export interface FirebaseAppHostingDomainCustomDomainStatus {
}
export declare function firebaseAppHostingDomainCustomDomainStatusToTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatus): any;
export declare function firebaseAppHostingDomainCustomDomainStatusToHclTerraform(struct?: FirebaseAppHostingDomainCustomDomainStatus): any;
export declare class FirebaseAppHostingDomainCustomDomainStatusOutputReference extends cdktf.ComplexObject {
    private isEmptyObject;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param complexObjectIndex the index of this item in the list
    * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
    get internalValue(): FirebaseAppHostingDomainCustomDomainStatus | undefined;
    set internalValue(value: FirebaseAppHostingDomainCustomDomainStatus | undefined);
    get certState(): string;
    get hostState(): string;
    private _issues;
    get issues(): FirebaseAppHostingDomainCustomDomainStatusIssuesList;
    get ownershipState(): string;
    private _requiredDnsUpdates;
    get requiredDnsUpdates(): FirebaseAppHostingDomainCustomDomainStatusRequiredDnsUpdatesList;
}
export declare class FirebaseAppHostingDomainCustomDomainStatusList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    /**
    * @param terraformResource The parent resource
    * @param terraformAttribute The attribute on the parent resource this class is referencing
    * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
    */
    constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
    /**
    * @param index the index of the item to return
    */
    get(index: number): FirebaseAppHostingDomainCustomDomainStatusOutputReference;
}
export interface FirebaseAppHostingDomainServeRedirect {
    /**
    * The status code to use in a redirect response. Must be a valid HTTP 3XX
    * status code. Defaults to 302 if not present.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#status FirebaseAppHostingDomain#status}
    */
    readonly status?: string;
    /**
    * The URI of the redirect's intended destination. This URI will be
    * prepended to the original request path. URI without a scheme are
    * assumed to be HTTPS.
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#uri FirebaseAppHostingDomain#uri}
    */
    readonly uri: string;
}
export declare function firebaseAppHostingDomainServeRedirectToTerraform(struct?: FirebaseAppHostingDomainServeRedirectOutputReference | FirebaseAppHostingDomainServeRedirect): any;
export declare function firebaseAppHostingDomainServeRedirectToHclTerraform(struct?: FirebaseAppHostingDomainServeRedirectOutputReference | FirebaseAppHostingDomainServeRedirect): any;
export declare class FirebaseAppHostingDomainServeRedirectOutputReference 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(): FirebaseAppHostingDomainServeRedirect | undefined;
    set internalValue(value: FirebaseAppHostingDomainServeRedirect | undefined);
    private _status?;
    get status(): string;
    set status(value: string);
    resetStatus(): void;
    get statusInput(): string | undefined;
    private _uri?;
    get uri(): string;
    set uri(value: string);
    get uriInput(): string | undefined;
}
export interface FirebaseAppHostingDomainServe {
    /**
    * redirect block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#redirect FirebaseAppHostingDomain#redirect}
    */
    readonly redirect?: FirebaseAppHostingDomainServeRedirect;
}
export declare function firebaseAppHostingDomainServeToTerraform(struct?: FirebaseAppHostingDomainServeOutputReference | FirebaseAppHostingDomainServe): any;
export declare function firebaseAppHostingDomainServeToHclTerraform(struct?: FirebaseAppHostingDomainServeOutputReference | FirebaseAppHostingDomainServe): any;
export declare class FirebaseAppHostingDomainServeOutputReference 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(): FirebaseAppHostingDomainServe | undefined;
    set internalValue(value: FirebaseAppHostingDomainServe | undefined);
    private _redirect;
    get redirect(): FirebaseAppHostingDomainServeRedirectOutputReference;
    putRedirect(value: FirebaseAppHostingDomainServeRedirect): void;
    resetRedirect(): void;
    get redirectInput(): FirebaseAppHostingDomainServeRedirect | undefined;
}
export interface FirebaseAppHostingDomainTimeouts {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#create FirebaseAppHostingDomain#create}
    */
    readonly create?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#delete FirebaseAppHostingDomain#delete}
    */
    readonly delete?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#update FirebaseAppHostingDomain#update}
    */
    readonly update?: string;
}
export declare function firebaseAppHostingDomainTimeoutsToTerraform(struct?: FirebaseAppHostingDomainTimeouts | cdktf.IResolvable): any;
export declare function firebaseAppHostingDomainTimeoutsToHclTerraform(struct?: FirebaseAppHostingDomainTimeouts | cdktf.IResolvable): any;
export declare class FirebaseAppHostingDomainTimeoutsOutputReference 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(): FirebaseAppHostingDomainTimeouts | cdktf.IResolvable | undefined;
    set internalValue(value: FirebaseAppHostingDomainTimeouts | 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.41.0/docs/resources/firebase_app_hosting_domain google_firebase_app_hosting_domain}
*/
export declare class FirebaseAppHostingDomain extends cdktf.TerraformResource {
    static readonly tfResourceType = "google_firebase_app_hosting_domain";
    /**
    * Generates CDKTF code for importing a FirebaseAppHostingDomain 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 FirebaseAppHostingDomain to import
    * @param importFromId The id of the existing FirebaseAppHostingDomain that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/google/6.41.0/docs/resources/firebase_app_hosting_domain#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the FirebaseAppHostingDomain 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.41.0/docs/resources/firebase_app_hosting_domain google_firebase_app_hosting_domain} 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 FirebaseAppHostingDomainConfig
    */
    constructor(scope: Construct, id: string, config: FirebaseAppHostingDomainConfig);
    private _backend?;
    get backend(): string;
    set backend(value: string);
    get backendInput(): string | undefined;
    get createTime(): string;
    private _customDomainStatus;
    get customDomainStatus(): FirebaseAppHostingDomainCustomDomainStatusList;
    get deleteTime(): string;
    private _domainId?;
    get domainId(): string;
    set domainId(value: string);
    get domainIdInput(): string | undefined;
    get etag(): string;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): 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 purgeTime(): string;
    get uid(): string;
    get updateTime(): string;
    private _serve;
    get serve(): FirebaseAppHostingDomainServeOutputReference;
    putServe(value: FirebaseAppHostingDomainServe): void;
    resetServe(): void;
    get serveInput(): FirebaseAppHostingDomainServe | undefined;
    private _timeouts;
    get timeouts(): FirebaseAppHostingDomainTimeoutsOutputReference;
    putTimeouts(value: FirebaseAppHostingDomainTimeouts): void;
    resetTimeouts(): void;
    get timeoutsInput(): cdktf.IResolvable | FirebaseAppHostingDomainTimeouts | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
