import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
 * DNS filtering gives you the ability to control what websites your users can access. DNS filtering is only available on certain plans. For more information, see Twingate's [documentation](https://www.twingate.com/docs/dns-filtering). DNS filtering must be enabled for this data source to work. If DNS filtering isn't enabled, the provider will throw an error.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as twingate from "@twingate/pulumi-twingate";
 *
 * const example = twingate.getTwingateDNSFilteringProfile({
 *     id: "<your dns profile's id>",
 * });
 * ```
 */
export declare function getTwingateDNSFilteringProfile(args: GetTwingateDNSFilteringProfileArgs, opts?: pulumi.InvokeOptions): Promise<GetTwingateDNSFilteringProfileResult>;
/**
 * A collection of arguments for invoking getTwingateDNSFilteringProfile.
 */
export interface GetTwingateDNSFilteringProfileArgs {
    /**
     * A block with the following attributes.
     */
    allowedDomains?: inputs.GetTwingateDNSFilteringProfileAllowedDomains;
    /**
     * A block with the following attributes.
     */
    contentCategories?: inputs.GetTwingateDNSFilteringProfileContentCategories;
    /**
     * A block with the following attributes.
     */
    deniedDomains?: inputs.GetTwingateDNSFilteringProfileDeniedDomains;
    /**
     * The DNS filtering profile's ID.
     */
    id: string;
    /**
     * A block with the following attributes.
     */
    privacyCategories?: inputs.GetTwingateDNSFilteringProfilePrivacyCategories;
    /**
     * A block with the following attributes.
     */
    securityCategories?: inputs.GetTwingateDNSFilteringProfileSecurityCategories;
}
/**
 * A collection of values returned by getTwingateDNSFilteringProfile.
 */
export interface GetTwingateDNSFilteringProfileResult {
    /**
     * A block with the following attributes.
     */
    readonly allowedDomains?: outputs.GetTwingateDNSFilteringProfileAllowedDomains;
    /**
     * A block with the following attributes.
     */
    readonly contentCategories?: outputs.GetTwingateDNSFilteringProfileContentCategories;
    /**
     * A block with the following attributes.
     */
    readonly deniedDomains?: outputs.GetTwingateDNSFilteringProfileDeniedDomains;
    /**
     * The DNS filtering profile's fallback method. One of AUTOMATIC or STRICT.
     */
    readonly fallbackMethod: string;
    /**
     * A set of group IDs that have this as their DNS filtering profile. Defaults to an empty set.
     */
    readonly groups: string[];
    /**
     * The DNS filtering profile's ID.
     */
    readonly id: string;
    /**
     * The DNS filtering profile's name.
     */
    readonly name: string;
    /**
     * A floating point number representing the profile's priority.
     */
    readonly priority: number;
    /**
     * A block with the following attributes.
     */
    readonly privacyCategories?: outputs.GetTwingateDNSFilteringProfilePrivacyCategories;
    /**
     * A block with the following attributes.
     */
    readonly securityCategories?: outputs.GetTwingateDNSFilteringProfileSecurityCategories;
}
/**
 * DNS filtering gives you the ability to control what websites your users can access. DNS filtering is only available on certain plans. For more information, see Twingate's [documentation](https://www.twingate.com/docs/dns-filtering). DNS filtering must be enabled for this data source to work. If DNS filtering isn't enabled, the provider will throw an error.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as twingate from "@twingate/pulumi-twingate";
 *
 * const example = twingate.getTwingateDNSFilteringProfile({
 *     id: "<your dns profile's id>",
 * });
 * ```
 */
export declare function getTwingateDNSFilteringProfileOutput(args: GetTwingateDNSFilteringProfileOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetTwingateDNSFilteringProfileResult>;
/**
 * A collection of arguments for invoking getTwingateDNSFilteringProfile.
 */
export interface GetTwingateDNSFilteringProfileOutputArgs {
    /**
     * A block with the following attributes.
     */
    allowedDomains?: pulumi.Input<inputs.GetTwingateDNSFilteringProfileAllowedDomainsArgs>;
    /**
     * A block with the following attributes.
     */
    contentCategories?: pulumi.Input<inputs.GetTwingateDNSFilteringProfileContentCategoriesArgs>;
    /**
     * A block with the following attributes.
     */
    deniedDomains?: pulumi.Input<inputs.GetTwingateDNSFilteringProfileDeniedDomainsArgs>;
    /**
     * The DNS filtering profile's ID.
     */
    id: pulumi.Input<string>;
    /**
     * A block with the following attributes.
     */
    privacyCategories?: pulumi.Input<inputs.GetTwingateDNSFilteringProfilePrivacyCategoriesArgs>;
    /**
     * A block with the following attributes.
     */
    securityCategories?: pulumi.Input<inputs.GetTwingateDNSFilteringProfileSecurityCategoriesArgs>;
}
