import * as pulumi from "@pulumi/pulumi";
/**
 * Use this data source to retrieve the list of Datadog permissions by name and their corresponding ID, for use in the role resource.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as datadog from "@pulumi/datadog";
 *
 * const ddPerms = datadog.getPermissions({});
 * // Example of using specific permissions to create an API Key Manager role
 * const apiKeyManager = new datadog.Role("api_key_manager", {
 *     name: "API Key Manager",
 *     permissions: [
 *         {
 *             id: ddPerms.then(ddPerms => ddPerms.permissions?.apiKeysRead),
 *         },
 *         {
 *             id: ddPerms.then(ddPerms => ddPerms.permissions?.apiKeysWrite),
 *         },
 *     ],
 * });
 * ```
 */
export declare function getPermissions(args?: GetPermissionsArgs, opts?: pulumi.InvokeOptions): Promise<GetPermissionsResult>;
/**
 * A collection of arguments for invoking getPermissions.
 */
export interface GetPermissionsArgs {
    /**
     * Whether to include restricted permissions. Restricted permissions are granted by default to all users of a Datadog org, and cannot be manually granted or revoked. Defaults to `false`.
     */
    includeRestricted?: boolean;
}
/**
 * A collection of values returned by getPermissions.
 */
export interface GetPermissionsResult {
    /**
     * The provider-assigned unique ID for this managed resource.
     */
    readonly id: string;
    /**
     * Whether to include restricted permissions. Restricted permissions are granted by default to all users of a Datadog org, and cannot be manually granted or revoked. Defaults to `false`.
     */
    readonly includeRestricted?: boolean;
    /**
     * Map of permissions names to their corresponding ID.
     */
    readonly permissions: {
        [key: string]: string;
    };
}
/**
 * Use this data source to retrieve the list of Datadog permissions by name and their corresponding ID, for use in the role resource.
 *
 * ## Example Usage
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as datadog from "@pulumi/datadog";
 *
 * const ddPerms = datadog.getPermissions({});
 * // Example of using specific permissions to create an API Key Manager role
 * const apiKeyManager = new datadog.Role("api_key_manager", {
 *     name: "API Key Manager",
 *     permissions: [
 *         {
 *             id: ddPerms.then(ddPerms => ddPerms.permissions?.apiKeysRead),
 *         },
 *         {
 *             id: ddPerms.then(ddPerms => ddPerms.permissions?.apiKeysWrite),
 *         },
 *     ],
 * });
 * ```
 */
export declare function getPermissionsOutput(args?: GetPermissionsOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetPermissionsResult>;
/**
 * A collection of arguments for invoking getPermissions.
 */
export interface GetPermissionsOutputArgs {
    /**
     * Whether to include restricted permissions. Restricted permissions are granted by default to all users of a Datadog org, and cannot be manually granted or revoked. Defaults to `false`.
     */
    includeRestricted?: pulumi.Input<boolean | undefined>;
}
//# sourceMappingURL=getPermissions.d.ts.map