/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface NotificationDestinationConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#destination_type NotificationDestination#destination_type}
    */
    readonly destinationType?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#display_name NotificationDestination#display_name}
    */
    readonly displayName: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#id NotificationDestination#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;
    /**
    * config block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#config NotificationDestination#config}
    */
    readonly config?: NotificationDestinationConfigA;
}
export interface NotificationDestinationConfigEmail {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#addresses NotificationDestination#addresses}
    */
    readonly addresses?: string[];
}
export declare function notificationDestinationConfigEmailToTerraform(struct?: NotificationDestinationConfigEmailOutputReference | NotificationDestinationConfigEmail): any;
export declare function notificationDestinationConfigEmailToHclTerraform(struct?: NotificationDestinationConfigEmailOutputReference | NotificationDestinationConfigEmail): any;
export declare class NotificationDestinationConfigEmailOutputReference 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(): NotificationDestinationConfigEmail | undefined;
    set internalValue(value: NotificationDestinationConfigEmail | undefined);
    private _addresses?;
    get addresses(): string[];
    set addresses(value: string[]);
    resetAddresses(): void;
    get addressesInput(): string[] | undefined;
}
export interface NotificationDestinationConfigGenericWebhook {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#password NotificationDestination#password}
    */
    readonly password?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#password_set NotificationDestination#password_set}
    */
    readonly passwordSet?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#url NotificationDestination#url}
    */
    readonly url?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#url_set NotificationDestination#url_set}
    */
    readonly urlSet?: boolean | cdktf.IResolvable;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#username NotificationDestination#username}
    */
    readonly username?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#username_set NotificationDestination#username_set}
    */
    readonly usernameSet?: boolean | cdktf.IResolvable;
}
export declare function notificationDestinationConfigGenericWebhookToTerraform(struct?: NotificationDestinationConfigGenericWebhookOutputReference | NotificationDestinationConfigGenericWebhook): any;
export declare function notificationDestinationConfigGenericWebhookToHclTerraform(struct?: NotificationDestinationConfigGenericWebhookOutputReference | NotificationDestinationConfigGenericWebhook): any;
export declare class NotificationDestinationConfigGenericWebhookOutputReference 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(): NotificationDestinationConfigGenericWebhook | undefined;
    set internalValue(value: NotificationDestinationConfigGenericWebhook | undefined);
    private _password?;
    get password(): string;
    set password(value: string);
    resetPassword(): void;
    get passwordInput(): string | undefined;
    private _passwordSet?;
    get passwordSet(): boolean | cdktf.IResolvable;
    set passwordSet(value: boolean | cdktf.IResolvable);
    resetPasswordSet(): void;
    get passwordSetInput(): boolean | cdktf.IResolvable | undefined;
    private _url?;
    get url(): string;
    set url(value: string);
    resetUrl(): void;
    get urlInput(): string | undefined;
    private _urlSet?;
    get urlSet(): boolean | cdktf.IResolvable;
    set urlSet(value: boolean | cdktf.IResolvable);
    resetUrlSet(): void;
    get urlSetInput(): boolean | cdktf.IResolvable | undefined;
    private _username?;
    get username(): string;
    set username(value: string);
    resetUsername(): void;
    get usernameInput(): string | undefined;
    private _usernameSet?;
    get usernameSet(): boolean | cdktf.IResolvable;
    set usernameSet(value: boolean | cdktf.IResolvable);
    resetUsernameSet(): void;
    get usernameSetInput(): boolean | cdktf.IResolvable | undefined;
}
export interface NotificationDestinationConfigMicrosoftTeams {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#url NotificationDestination#url}
    */
    readonly url?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#url_set NotificationDestination#url_set}
    */
    readonly urlSet?: boolean | cdktf.IResolvable;
}
export declare function notificationDestinationConfigMicrosoftTeamsToTerraform(struct?: NotificationDestinationConfigMicrosoftTeamsOutputReference | NotificationDestinationConfigMicrosoftTeams): any;
export declare function notificationDestinationConfigMicrosoftTeamsToHclTerraform(struct?: NotificationDestinationConfigMicrosoftTeamsOutputReference | NotificationDestinationConfigMicrosoftTeams): any;
export declare class NotificationDestinationConfigMicrosoftTeamsOutputReference 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(): NotificationDestinationConfigMicrosoftTeams | undefined;
    set internalValue(value: NotificationDestinationConfigMicrosoftTeams | undefined);
    private _url?;
    get url(): string;
    set url(value: string);
    resetUrl(): void;
    get urlInput(): string | undefined;
    private _urlSet?;
    get urlSet(): boolean | cdktf.IResolvable;
    set urlSet(value: boolean | cdktf.IResolvable);
    resetUrlSet(): void;
    get urlSetInput(): boolean | cdktf.IResolvable | undefined;
}
export interface NotificationDestinationConfigPagerduty {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#integration_key NotificationDestination#integration_key}
    */
    readonly integrationKey?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#integration_key_set NotificationDestination#integration_key_set}
    */
    readonly integrationKeySet?: boolean | cdktf.IResolvable;
}
export declare function notificationDestinationConfigPagerdutyToTerraform(struct?: NotificationDestinationConfigPagerdutyOutputReference | NotificationDestinationConfigPagerduty): any;
export declare function notificationDestinationConfigPagerdutyToHclTerraform(struct?: NotificationDestinationConfigPagerdutyOutputReference | NotificationDestinationConfigPagerduty): any;
export declare class NotificationDestinationConfigPagerdutyOutputReference 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(): NotificationDestinationConfigPagerduty | undefined;
    set internalValue(value: NotificationDestinationConfigPagerduty | undefined);
    private _integrationKey?;
    get integrationKey(): string;
    set integrationKey(value: string);
    resetIntegrationKey(): void;
    get integrationKeyInput(): string | undefined;
    private _integrationKeySet?;
    get integrationKeySet(): boolean | cdktf.IResolvable;
    set integrationKeySet(value: boolean | cdktf.IResolvable);
    resetIntegrationKeySet(): void;
    get integrationKeySetInput(): boolean | cdktf.IResolvable | undefined;
}
export interface NotificationDestinationConfigSlack {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#url NotificationDestination#url}
    */
    readonly url?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#url_set NotificationDestination#url_set}
    */
    readonly urlSet?: boolean | cdktf.IResolvable;
}
export declare function notificationDestinationConfigSlackToTerraform(struct?: NotificationDestinationConfigSlackOutputReference | NotificationDestinationConfigSlack): any;
export declare function notificationDestinationConfigSlackToHclTerraform(struct?: NotificationDestinationConfigSlackOutputReference | NotificationDestinationConfigSlack): any;
export declare class NotificationDestinationConfigSlackOutputReference 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(): NotificationDestinationConfigSlack | undefined;
    set internalValue(value: NotificationDestinationConfigSlack | undefined);
    private _url?;
    get url(): string;
    set url(value: string);
    resetUrl(): void;
    get urlInput(): string | undefined;
    private _urlSet?;
    get urlSet(): boolean | cdktf.IResolvable;
    set urlSet(value: boolean | cdktf.IResolvable);
    resetUrlSet(): void;
    get urlSetInput(): boolean | cdktf.IResolvable | undefined;
}
export interface NotificationDestinationConfigA {
    /**
    * email block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#email NotificationDestination#email}
    */
    readonly email?: NotificationDestinationConfigEmail;
    /**
    * generic_webhook block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#generic_webhook NotificationDestination#generic_webhook}
    */
    readonly genericWebhook?: NotificationDestinationConfigGenericWebhook;
    /**
    * microsoft_teams block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#microsoft_teams NotificationDestination#microsoft_teams}
    */
    readonly microsoftTeams?: NotificationDestinationConfigMicrosoftTeams;
    /**
    * pagerduty block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#pagerduty NotificationDestination#pagerduty}
    */
    readonly pagerduty?: NotificationDestinationConfigPagerduty;
    /**
    * slack block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#slack NotificationDestination#slack}
    */
    readonly slack?: NotificationDestinationConfigSlack;
}
export declare function notificationDestinationConfigAToTerraform(struct?: NotificationDestinationConfigAOutputReference | NotificationDestinationConfigA): any;
export declare function notificationDestinationConfigAToHclTerraform(struct?: NotificationDestinationConfigAOutputReference | NotificationDestinationConfigA): any;
export declare class NotificationDestinationConfigAOutputReference 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(): NotificationDestinationConfigA | undefined;
    set internalValue(value: NotificationDestinationConfigA | undefined);
    private _email;
    get email(): NotificationDestinationConfigEmailOutputReference;
    putEmail(value: NotificationDestinationConfigEmail): void;
    resetEmail(): void;
    get emailInput(): NotificationDestinationConfigEmail | undefined;
    private _genericWebhook;
    get genericWebhook(): NotificationDestinationConfigGenericWebhookOutputReference;
    putGenericWebhook(value: NotificationDestinationConfigGenericWebhook): void;
    resetGenericWebhook(): void;
    get genericWebhookInput(): NotificationDestinationConfigGenericWebhook | undefined;
    private _microsoftTeams;
    get microsoftTeams(): NotificationDestinationConfigMicrosoftTeamsOutputReference;
    putMicrosoftTeams(value: NotificationDestinationConfigMicrosoftTeams): void;
    resetMicrosoftTeams(): void;
    get microsoftTeamsInput(): NotificationDestinationConfigMicrosoftTeams | undefined;
    private _pagerduty;
    get pagerduty(): NotificationDestinationConfigPagerdutyOutputReference;
    putPagerduty(value: NotificationDestinationConfigPagerduty): void;
    resetPagerduty(): void;
    get pagerdutyInput(): NotificationDestinationConfigPagerduty | undefined;
    private _slack;
    get slack(): NotificationDestinationConfigSlackOutputReference;
    putSlack(value: NotificationDestinationConfigSlack): void;
    resetSlack(): void;
    get slackInput(): NotificationDestinationConfigSlack | undefined;
}
/**
* Represents a {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination databricks_notification_destination}
*/
export declare class NotificationDestination extends cdktf.TerraformResource {
    static readonly tfResourceType = "databricks_notification_destination";
    /**
    * Generates CDKTF code for importing a NotificationDestination 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 NotificationDestination to import
    * @param importFromId The id of the existing NotificationDestination that should be imported. Refer to the {@link https://registry.terraform.io/providers/databricks/databricks/1.71.0/docs/resources/notification_destination#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the NotificationDestination 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/databricks/databricks/1.71.0/docs/resources/notification_destination databricks_notification_destination} 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 NotificationDestinationConfig
    */
    constructor(scope: Construct, id: string, config: NotificationDestinationConfig);
    private _destinationType?;
    get destinationType(): string;
    set destinationType(value: string);
    resetDestinationType(): void;
    get destinationTypeInput(): string | undefined;
    private _displayName?;
    get displayName(): string;
    set displayName(value: string);
    get displayNameInput(): string | undefined;
    private _id?;
    get id(): string;
    set id(value: string);
    resetId(): void;
    get idInput(): string | undefined;
    private _config;
    get config(): NotificationDestinationConfigAOutputReference;
    putConfig(value: NotificationDestinationConfigA): void;
    resetConfig(): void;
    get configInput(): NotificationDestinationConfigA | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
