/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface QuicksightCustomPermissionsConfig extends cdktf.TerraformMetaArguments {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#aws_account_id QuicksightCustomPermissions#aws_account_id}
    */
    readonly awsAccountId?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#custom_permissions_name QuicksightCustomPermissions#custom_permissions_name}
    */
    readonly customPermissionsName: string;
    /**
    * Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference).
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#region QuicksightCustomPermissions#region}
    */
    readonly region?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#tags QuicksightCustomPermissions#tags}
    */
    readonly tags?: {
        [key: string]: string;
    };
    /**
    * capabilities block
    *
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#capabilities QuicksightCustomPermissions#capabilities}
    */
    readonly capabilities?: QuicksightCustomPermissionsCapabilities[] | cdktf.IResolvable;
}
export interface QuicksightCustomPermissionsCapabilities {
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#add_or_run_anomaly_detection_for_analyses QuicksightCustomPermissions#add_or_run_anomaly_detection_for_analyses}
    */
    readonly addOrRunAnomalyDetectionForAnalyses?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#create_and_update_dashboard_email_reports QuicksightCustomPermissions#create_and_update_dashboard_email_reports}
    */
    readonly createAndUpdateDashboardEmailReports?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#create_and_update_data_sources QuicksightCustomPermissions#create_and_update_data_sources}
    */
    readonly createAndUpdateDataSources?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#create_and_update_datasets QuicksightCustomPermissions#create_and_update_datasets}
    */
    readonly createAndUpdateDatasets?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#create_and_update_themes QuicksightCustomPermissions#create_and_update_themes}
    */
    readonly createAndUpdateThemes?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#create_and_update_threshold_alerts QuicksightCustomPermissions#create_and_update_threshold_alerts}
    */
    readonly createAndUpdateThresholdAlerts?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#create_shared_folders QuicksightCustomPermissions#create_shared_folders}
    */
    readonly createSharedFolders?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#create_spice_dataset QuicksightCustomPermissions#create_spice_dataset}
    */
    readonly createSpiceDataset?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#export_to_csv QuicksightCustomPermissions#export_to_csv}
    */
    readonly exportToCsv?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#export_to_csv_in_scheduled_reports QuicksightCustomPermissions#export_to_csv_in_scheduled_reports}
    */
    readonly exportToCsvInScheduledReports?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#export_to_excel QuicksightCustomPermissions#export_to_excel}
    */
    readonly exportToExcel?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#export_to_excel_in_scheduled_reports QuicksightCustomPermissions#export_to_excel_in_scheduled_reports}
    */
    readonly exportToExcelInScheduledReports?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#export_to_pdf QuicksightCustomPermissions#export_to_pdf}
    */
    readonly exportToPdf?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#export_to_pdf_in_scheduled_reports QuicksightCustomPermissions#export_to_pdf_in_scheduled_reports}
    */
    readonly exportToPdfInScheduledReports?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#include_content_in_scheduled_reports_email QuicksightCustomPermissions#include_content_in_scheduled_reports_email}
    */
    readonly includeContentInScheduledReportsEmail?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#print_reports QuicksightCustomPermissions#print_reports}
    */
    readonly printReports?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#rename_shared_folders QuicksightCustomPermissions#rename_shared_folders}
    */
    readonly renameSharedFolders?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#share_analyses QuicksightCustomPermissions#share_analyses}
    */
    readonly shareAnalyses?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#share_dashboards QuicksightCustomPermissions#share_dashboards}
    */
    readonly shareDashboards?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#share_data_sources QuicksightCustomPermissions#share_data_sources}
    */
    readonly shareDataSources?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#share_datasets QuicksightCustomPermissions#share_datasets}
    */
    readonly shareDatasets?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#subscribe_dashboard_email_reports QuicksightCustomPermissions#subscribe_dashboard_email_reports}
    */
    readonly subscribeDashboardEmailReports?: string;
    /**
    * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#view_account_spice_capacity QuicksightCustomPermissions#view_account_spice_capacity}
    */
    readonly viewAccountSpiceCapacity?: string;
}
export declare function quicksightCustomPermissionsCapabilitiesToTerraform(struct?: QuicksightCustomPermissionsCapabilities | cdktf.IResolvable): any;
export declare function quicksightCustomPermissionsCapabilitiesToHclTerraform(struct?: QuicksightCustomPermissionsCapabilities | cdktf.IResolvable): any;
export declare class QuicksightCustomPermissionsCapabilitiesOutputReference 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(): QuicksightCustomPermissionsCapabilities | cdktf.IResolvable | undefined;
    set internalValue(value: QuicksightCustomPermissionsCapabilities | cdktf.IResolvable | undefined);
    private _addOrRunAnomalyDetectionForAnalyses?;
    get addOrRunAnomalyDetectionForAnalyses(): string;
    set addOrRunAnomalyDetectionForAnalyses(value: string);
    resetAddOrRunAnomalyDetectionForAnalyses(): void;
    get addOrRunAnomalyDetectionForAnalysesInput(): string | undefined;
    private _createAndUpdateDashboardEmailReports?;
    get createAndUpdateDashboardEmailReports(): string;
    set createAndUpdateDashboardEmailReports(value: string);
    resetCreateAndUpdateDashboardEmailReports(): void;
    get createAndUpdateDashboardEmailReportsInput(): string | undefined;
    private _createAndUpdateDataSources?;
    get createAndUpdateDataSources(): string;
    set createAndUpdateDataSources(value: string);
    resetCreateAndUpdateDataSources(): void;
    get createAndUpdateDataSourcesInput(): string | undefined;
    private _createAndUpdateDatasets?;
    get createAndUpdateDatasets(): string;
    set createAndUpdateDatasets(value: string);
    resetCreateAndUpdateDatasets(): void;
    get createAndUpdateDatasetsInput(): string | undefined;
    private _createAndUpdateThemes?;
    get createAndUpdateThemes(): string;
    set createAndUpdateThemes(value: string);
    resetCreateAndUpdateThemes(): void;
    get createAndUpdateThemesInput(): string | undefined;
    private _createAndUpdateThresholdAlerts?;
    get createAndUpdateThresholdAlerts(): string;
    set createAndUpdateThresholdAlerts(value: string);
    resetCreateAndUpdateThresholdAlerts(): void;
    get createAndUpdateThresholdAlertsInput(): string | undefined;
    private _createSharedFolders?;
    get createSharedFolders(): string;
    set createSharedFolders(value: string);
    resetCreateSharedFolders(): void;
    get createSharedFoldersInput(): string | undefined;
    private _createSpiceDataset?;
    get createSpiceDataset(): string;
    set createSpiceDataset(value: string);
    resetCreateSpiceDataset(): void;
    get createSpiceDatasetInput(): string | undefined;
    private _exportToCsv?;
    get exportToCsv(): string;
    set exportToCsv(value: string);
    resetExportToCsv(): void;
    get exportToCsvInput(): string | undefined;
    private _exportToCsvInScheduledReports?;
    get exportToCsvInScheduledReports(): string;
    set exportToCsvInScheduledReports(value: string);
    resetExportToCsvInScheduledReports(): void;
    get exportToCsvInScheduledReportsInput(): string | undefined;
    private _exportToExcel?;
    get exportToExcel(): string;
    set exportToExcel(value: string);
    resetExportToExcel(): void;
    get exportToExcelInput(): string | undefined;
    private _exportToExcelInScheduledReports?;
    get exportToExcelInScheduledReports(): string;
    set exportToExcelInScheduledReports(value: string);
    resetExportToExcelInScheduledReports(): void;
    get exportToExcelInScheduledReportsInput(): string | undefined;
    private _exportToPdf?;
    get exportToPdf(): string;
    set exportToPdf(value: string);
    resetExportToPdf(): void;
    get exportToPdfInput(): string | undefined;
    private _exportToPdfInScheduledReports?;
    get exportToPdfInScheduledReports(): string;
    set exportToPdfInScheduledReports(value: string);
    resetExportToPdfInScheduledReports(): void;
    get exportToPdfInScheduledReportsInput(): string | undefined;
    private _includeContentInScheduledReportsEmail?;
    get includeContentInScheduledReportsEmail(): string;
    set includeContentInScheduledReportsEmail(value: string);
    resetIncludeContentInScheduledReportsEmail(): void;
    get includeContentInScheduledReportsEmailInput(): string | undefined;
    private _printReports?;
    get printReports(): string;
    set printReports(value: string);
    resetPrintReports(): void;
    get printReportsInput(): string | undefined;
    private _renameSharedFolders?;
    get renameSharedFolders(): string;
    set renameSharedFolders(value: string);
    resetRenameSharedFolders(): void;
    get renameSharedFoldersInput(): string | undefined;
    private _shareAnalyses?;
    get shareAnalyses(): string;
    set shareAnalyses(value: string);
    resetShareAnalyses(): void;
    get shareAnalysesInput(): string | undefined;
    private _shareDashboards?;
    get shareDashboards(): string;
    set shareDashboards(value: string);
    resetShareDashboards(): void;
    get shareDashboardsInput(): string | undefined;
    private _shareDataSources?;
    get shareDataSources(): string;
    set shareDataSources(value: string);
    resetShareDataSources(): void;
    get shareDataSourcesInput(): string | undefined;
    private _shareDatasets?;
    get shareDatasets(): string;
    set shareDatasets(value: string);
    resetShareDatasets(): void;
    get shareDatasetsInput(): string | undefined;
    private _subscribeDashboardEmailReports?;
    get subscribeDashboardEmailReports(): string;
    set subscribeDashboardEmailReports(value: string);
    resetSubscribeDashboardEmailReports(): void;
    get subscribeDashboardEmailReportsInput(): string | undefined;
    private _viewAccountSpiceCapacity?;
    get viewAccountSpiceCapacity(): string;
    set viewAccountSpiceCapacity(value: string);
    resetViewAccountSpiceCapacity(): void;
    get viewAccountSpiceCapacityInput(): string | undefined;
}
export declare class QuicksightCustomPermissionsCapabilitiesList extends cdktf.ComplexList {
    protected terraformResource: cdktf.IInterpolatingParent;
    protected terraformAttribute: string;
    protected wrapsSet: boolean;
    internalValue?: QuicksightCustomPermissionsCapabilities[] | 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): QuicksightCustomPermissionsCapabilitiesOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions aws_quicksight_custom_permissions}
*/
export declare class QuicksightCustomPermissions extends cdktf.TerraformResource {
    static readonly tfResourceType = "aws_quicksight_custom_permissions";
    /**
    * Generates CDKTF code for importing a QuicksightCustomPermissions 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 QuicksightCustomPermissions to import
    * @param importFromId The id of the existing QuicksightCustomPermissions that should be imported. Refer to the {@link https://registry.terraform.io/providers/hashicorp/aws/6.25.0/docs/resources/quicksight_custom_permissions#import import section} in the documentation of this resource for the id to use
    * @param provider? Optional instance of the provider where the QuicksightCustomPermissions 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/aws/6.25.0/docs/resources/quicksight_custom_permissions aws_quicksight_custom_permissions} 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 QuicksightCustomPermissionsConfig
    */
    constructor(scope: Construct, id: string, config: QuicksightCustomPermissionsConfig);
    get arn(): string;
    private _awsAccountId?;
    get awsAccountId(): string;
    set awsAccountId(value: string);
    resetAwsAccountId(): void;
    get awsAccountIdInput(): string | undefined;
    private _customPermissionsName?;
    get customPermissionsName(): string;
    set customPermissionsName(value: string);
    get customPermissionsNameInput(): string | undefined;
    private _region?;
    get region(): string;
    set region(value: string);
    resetRegion(): void;
    get regionInput(): string | undefined;
    private _tags?;
    get tags(): {
        [key: string]: string;
    };
    set tags(value: {
        [key: string]: string;
    });
    resetTags(): void;
    get tagsInput(): {
        [key: string]: string;
    } | undefined;
    private _tagsAll;
    get tagsAll(): cdktf.StringMap;
    private _capabilities;
    get capabilities(): QuicksightCustomPermissionsCapabilitiesList;
    putCapabilities(value: QuicksightCustomPermissionsCapabilities[] | cdktf.IResolvable): void;
    resetCapabilities(): void;
    get capabilitiesInput(): cdktf.IResolvable | QuicksightCustomPermissionsCapabilities[] | undefined;
    protected synthesizeAttributes(): {
        [name: string]: any;
    };
    protected synthesizeHclAttributes(): {
        [name: string]: any;
    };
}
