import { APIResource } from "../../../core/resource.mjs";
import { PagePromise, SinglePage } from "../../../core/pagination.mjs";
import { RequestOptions } from "../../../internal/request-options.mjs";
export declare class BaseZsk extends APIResource {
    static readonly _key: readonly ['dns', 'dnssec', 'zsk'];
    /**
     * List the Zone Signing Keys (ZSKs) that DNSSEC uses for the zone.
     *
     * @example
     * ```ts
     * // Automatically fetches more pages as needed.
     * for await (const zskListResponse of client.dns.dnssec.zsk.list(
     *   { zone_id: '023e105f4ecef8ad9ca31a8372d0c353' },
     * )) {
     *   // ...
     * }
     * ```
     */
    list(params: ZskListParams, options?: RequestOptions): PagePromise<ZskListResponsesSinglePage, ZskListResponse>;
}
export declare class Zsk extends BaseZsk {
}
export type ZskListResponsesSinglePage = SinglePage<ZskListResponse>;
export interface ZskListResponse {
    DNSKEY?: ZskListResponse.DNSKEY;
    /**
     * Storage backend where the DNSSEC key material is stored.
     */
    Location?: 'database' | 'vault';
    /**
     * Internal key name for the ZSK.
     */
    Name?: string;
    SigningKey?: ZskListResponse.SigningKey;
    /**
     * Lifecycle state tag attached to the DNSSEC key.
     */
    Tag?: 'active' | 'publish' | 'external' | 'retired' | 'revoked' | 'removed';
}
export declare namespace ZskListResponse {
    interface DNSKEY {
        Algorithm?: number | null;
        Flags?: number | null;
        Hdr?: DNSKEY.Hdr;
        Protocol?: number | null;
        PublicKey?: string | null;
    }
    namespace DNSKEY {
        interface Hdr {
            Class?: number | null;
            Name?: string | null;
            Rdlength?: number | null;
            Rrtype?: number | null;
            Ttl?: number | null;
        }
    }
    interface SigningKey {
        /**
         * Key encryption key name used to encrypt the private key.
         */
        kek?: string | null;
        /**
         * Encrypted private key material for the signing key.
         */
        privkey?: string | null;
        /**
         * Public key content associated with the signing key.
         */
        pubkey?: string | null;
    }
}
export interface ZskListParams {
    /**
     * Identifier.
     */
    zone_id: string;
}
export declare namespace Zsk {
    export { type ZskListResponse as ZskListResponse, type ZskListResponsesSinglePage as ZskListResponsesSinglePage, type ZskListParams as ZskListParams, };
}
//# sourceMappingURL=zsk.d.mts.map