import type { BaseClientOptions, BaseRequestOptions } from "../../../../BaseClient.js";
import { type NormalizedClientOptionsWithAuth } from "../../../../BaseClient.js";
import * as core from "../../../../core/index.js";
import * as Management from "../../../index.js";
export declare namespace DeviceCredentialsClient {
    type Options = BaseClientOptions;
    interface RequestOptions extends BaseRequestOptions {
    }
}
export declare class DeviceCredentialsClient {
    protected readonly _options: NormalizedClientOptionsWithAuth<DeviceCredentialsClient.Options>;
    constructor(options: DeviceCredentialsClient.Options);
    /**
     * Retrieve device credential information (<code>public_key</code>, <code>refresh_token</code>, or <code>rotating_refresh_token</code>) associated with a specific user.
     *
     * @param {Management.ListDeviceCredentialsRequestParameters} request
     * @param {DeviceCredentialsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.deviceCredentials.list({
     *         page: 1,
     *         per_page: 1,
     *         include_totals: true,
     *         fields: "fields",
     *         include_fields: true,
     *         user_id: "user_id",
     *         client_id: "client_id",
     *         type: "public_key"
     *     })
     */
    list(request?: Management.ListDeviceCredentialsRequestParameters, requestOptions?: DeviceCredentialsClient.RequestOptions): Promise<core.Page<Management.DeviceCredential, Management.ListDeviceCredentialsOffsetPaginatedResponseContent>>;
    /**
     * Create a device credential public key to manage refresh token rotation for a given <code>user_id</code>. Device Credentials APIs are designed for ad-hoc administrative use only and paging is by default enabled for GET requests.
     *
     * When refresh token rotation is enabled, the endpoint becomes consistent. For more information, read <a href="https://auth0.com/docs/get-started/tenant-settings/signing-keys"> Signing Keys</a>.
     *
     * @param {Management.CreatePublicKeyDeviceCredentialRequestContent} request
     * @param {DeviceCredentialsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.ConflictError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.deviceCredentials.createPublicKey({
     *         device_name: "device_name",
     *         type: "public_key",
     *         value: "value",
     *         device_id: "device_id"
     *     })
     */
    createPublicKey(request: Management.CreatePublicKeyDeviceCredentialRequestContent, requestOptions?: DeviceCredentialsClient.RequestOptions): core.HttpResponsePromise<Management.CreatePublicKeyDeviceCredentialResponseContent>;
    private __createPublicKey;
    /**
     * Permanently delete a device credential (such as a refresh token or public key) with the given ID.
     *
     * @param {string} id - ID of the credential to delete.
     * @param {DeviceCredentialsClient.RequestOptions} requestOptions - Request-specific configuration.
     *
     * @throws {@link Management.BadRequestError}
     * @throws {@link Management.UnauthorizedError}
     * @throws {@link Management.ForbiddenError}
     * @throws {@link Management.TooManyRequestsError}
     *
     * @example
     *     await client.deviceCredentials.delete("id")
     */
    delete(id: string, requestOptions?: DeviceCredentialsClient.RequestOptions): core.HttpResponsePromise<void>;
    private __delete;
}
